Merge "Use tags instead of roles"
This commit is contained in:
commit
36b90eacdc
|
@ -868,7 +868,7 @@ class Cluster(NailgunObject):
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_roles_by_tag(cls, tag_name, instance):
|
def get_roles_by_tag(cls, tag_name, instance):
|
||||||
roles = set()
|
roles = set()
|
||||||
for role, meta in six.iteritems(cls.get_own_roles(instance)):
|
for role, meta in six.iteritems(cls.get_roles(instance)):
|
||||||
if tag_name in meta.get('tags', {}):
|
if tag_name in meta.get('tags', {}):
|
||||||
roles.add(role)
|
roles.add(role)
|
||||||
return roles
|
return roles
|
||||||
|
@ -1036,13 +1036,16 @@ class Cluster(NailgunObject):
|
||||||
return nodegroups[0]
|
return nodegroups[0]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_node_groups(cls, instance, noderoles):
|
def get_node_groups(cls, instance, nodetags):
|
||||||
"""Returns node groups for given node roles.
|
"""Returns node groups for given node roles.
|
||||||
|
|
||||||
:param instance: a Cluster instance
|
:param instance: a Cluster instance
|
||||||
:param noderoles: a list of node roles
|
:param noderoles: a list of node roles
|
||||||
:returns: a query for list of NodeGroup instances
|
:returns: a query for list of NodeGroup instances
|
||||||
"""
|
"""
|
||||||
|
noderoles = set()
|
||||||
|
for tag in nodetags:
|
||||||
|
noderoles.update(cls.get_roles_by_tag(tag, instance) or [tag])
|
||||||
psql_noderoles = sa.cast(
|
psql_noderoles = sa.cast(
|
||||||
psql.array(noderoles),
|
psql.array(noderoles),
|
||||||
psql.ARRAY(sa.String(consts.ROLE_NAME_MAX_SIZE)))
|
psql.ARRAY(sa.String(consts.ROLE_NAME_MAX_SIZE)))
|
||||||
|
|
|
@ -1098,6 +1098,7 @@ class TestClusterObject(BaseTestCase):
|
||||||
super(TestClusterObject, self).setUp()
|
super(TestClusterObject, self).setUp()
|
||||||
self.cluster = self.env.create(
|
self.cluster = self.env.create(
|
||||||
cluster_kwargs={'net_provider': 'neutron'},
|
cluster_kwargs={'net_provider': 'neutron'},
|
||||||
|
release_kwargs={'version': 'newton-10.0', 'api': False},
|
||||||
nodes_kwargs=[
|
nodes_kwargs=[
|
||||||
{'roles': ['controller']},
|
{'roles': ['controller']},
|
||||||
{'roles': ['controller']},
|
{'roles': ['controller']},
|
||||||
|
@ -1240,6 +1241,10 @@ class TestClusterObject(BaseTestCase):
|
||||||
controller.group_id,
|
controller.group_id,
|
||||||
objects.Cluster.get_common_node_group(self.cluster,
|
objects.Cluster.get_common_node_group(self.cluster,
|
||||||
['controller']).id)
|
['controller']).id)
|
||||||
|
self.assertEqual(
|
||||||
|
controller.group_id,
|
||||||
|
objects.Cluster.get_common_node_group(self.cluster,
|
||||||
|
['neutron']).id)
|
||||||
|
|
||||||
def test_get_node_group_multiple_return_same_group(self):
|
def test_get_node_group_multiple_return_same_group(self):
|
||||||
group_id = self.env.create_node_group().json_body['id']
|
group_id = self.env.create_node_group().json_body['id']
|
||||||
|
|
Loading…
Reference in New Issue