return conf
+def ceph_role(role):
+ """
+ Return the ceph name for the role, without any cluster prefix, e.g. osd.0.
+ """
+ _, type_, id_ = split_role(role)
+ return type_ + '.' + id_
+
+
+def split_role(role):
+ """
+ Return a tuple of cluster, type, and id
+ If no cluster is included in the role, the default cluster, 'ceph', is used
+ """
+ cluster = 'ceph'
+ if role.count('.') > 1:
+ cluster, role = role.split('.', 1)
+ type_, id_ = role.split('.', 1)
+ return cluster, type_, id_
+
+
def roles_of_type(roles_for_host, type_):
"""
Generator of roles.
'ceph.mon.c': ips[2] + ':6789'}
+def test_split_role():
+ expected = {
+ 'client.0': ('ceph', 'client', '0'),
+ 'foo.client.0': ('foo', 'client', '0'),
+ 'bar.baz.x.y.z': ('bar', 'baz', 'x.y.z'),
+ 'mds.a-s-b': ('ceph', 'mds', 'a-s-b'),
+ }
+
+ for role, expected_split in expected.items():
+ actual_split = misc.split_role(role)
+ assert actual_split == expected_split
+
class TestHostnames(object):
def setup(self):
config._conf = dict()