From: Josh Durgin Date: Tue, 15 Mar 2016 21:26:02 +0000 (-0700) Subject: misc: make get_mons() cluster-aware X-Git-Tag: 1.1.0~615^2~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2b95cab606ebd9039fa80749e01373ffc665950e;p=teuthology.git misc: make get_mons() cluster-aware Use the is_type() helper to keep the logic in one place. Signed-off-by: Josh Durgin --- diff --git a/teuthology/misc.py b/teuthology/misc.py index 4947b2e0a..2df4b1fd3 100644 --- a/teuthology/misc.py +++ b/teuthology/misc.py @@ -272,9 +272,10 @@ def get_mons(roles, ips): mons = {} mon_ports = {} mon_id = 0 + is_mon = is_type('mon') for idx, roles in enumerate(roles): for role in roles: - if not role.startswith('mon.'): + if not is_mon(role): continue if ips[idx] not in mon_ports: mon_ports[ips[idx]] = 6789 diff --git a/teuthology/test/test_misc.py b/teuthology/test/test_misc.py index 645cb5399..6b392bfbe 100644 --- a/teuthology/test/test_misc.py +++ b/teuthology/test/test_misc.py @@ -128,6 +128,27 @@ def test_is_type(): assert not is_client('hadoop.master.0') +def test_get_mons(): + ips = ['1.1.1.1', '2.2.2.2', '3.3.3.3'] + addrs = ['1.1.1.1:6789', '1.1.1.1:6790', '1.1.1.1:6791'] + + mons = misc.get_mons([['mon.a']], ips) + assert mons == {'mon.a': addrs[0]} + + mons = misc.get_mons([['cluster-a.mon.foo', 'client.b'], ['osd.0']], ips) + assert mons == {'cluster-a.mon.foo': addrs[0]} + + mons = misc.get_mons([['mon.a', 'mon.b', 'ceph.mon.c']], ips) + assert mons == {'mon.a': addrs[0], + 'mon.b': addrs[1], + 'ceph.mon.c': addrs[2]} + + mons = misc.get_mons([['mon.a'], ['mon.b'], ['ceph.mon.c']], ips) + assert mons == {'mon.a': addrs[0], + 'mon.b': ips[1] + ':6789', + 'ceph.mon.c': ips[2] + ':6789'} + + class TestHostnames(object): def setup(self): config._conf = dict()