Merge "Revert "Add default tags""

This commit is contained in:
Jenkins 2016-11-08 16:36:54 +00:00 committed by Gerrit Code Review
commit 3734dd6939
13 changed files with 90 additions and 485 deletions

View File

@ -40,87 +40,6 @@
strategy:
type: parallel
amount: 6
- id: primary-database
type: group
roles: [primary-database]
requires: [deploy_start]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: database
type: group
fault_tolerance: 0
roles: [database]
requires: [primary-database]
required_for: [deploy_end]
parameters:
strategy:
type: parallel
amount: 6
- id: primary-keystone
type: group
roles: [primary-keystone]
requires: [deploy_start, primary-database]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: keystone
type: group
fault_tolerance: 0
roles: [keystone]
requires: [primary-keystone]
required_for: [deploy_end]
parameters:
strategy:
type: parallel
amount: 6
- id: primary-neutron
type: group
roles: [primary-neutron]
requires: [deploy_start]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: neutron
type: group
fault_tolerance: 0
roles: [neutron]
requires: [primary-neutron]
required_for: [deploy_end]
parameters:
strategy:
type: parallel
amount: 6
- id: primary-rabbitmq
type: group
roles: [primary-rabbitmq]
requires: [deploy_start]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: rabbitmq
type: group
fault_tolerance: 0
roles: [rabbitmq]
requires: [primary-rabbitmq]
required_for: [deploy_end]
parameters:
strategy:
type: parallel
amount: 6
- id: cinder
type: group
roles: [cinder]
@ -194,11 +113,7 @@
type: puppet
groups: [primary-controller, controller,
cinder, compute, ceph-osd,
primary-mongo, mongo, ironic,
primary-database, database,
primary-keystone, keystone,
primary-neutron, neutron,
primary-rabbitmq, rabbitmq]
primary-mongo, mongo, ironic]
required_for: [deploy_end]
requires: [deploy_start]
reexecute_on: [deploy_changes]
@ -264,11 +179,7 @@
type: puppet
groups: [primary-controller, controller,
cinder, compute, ceph-osd,
primary-mongo, mongo, ironic,
primary-database, database,
primary-keystone, keystone,
primary-neutron, neutron,
primary-rabbitmq, rabbitmq]
primary-mongo, mongo, ironic]
required_for: [deploy_end]
requires: [deploy_start]
reexecute_on: [deploy_changes]

View File

@ -29,10 +29,6 @@
message: "Neutron L3 HA requires at least 2 Controller nodes to function properly."
tags:
- controller
- rabbitmq
- database
- keystone
- neutron
compute:
name: "Compute"
description: "A Compute node creates, manages, and terminates virtual machine instances."
@ -192,6 +188,8 @@
tags_metadata:
controller:
has_primary: True
mysql:
has_primary: True
mongo:
has_primary: True
compute:
@ -200,14 +198,6 @@
has_primary: False
cinder:
has_primary: False
rabbitmq:
has_primary: True
database:
has_primary: True
keystone:
has_primary: True
neutron:
has_primary: True
network_roles_metadata:
-

View File

@ -46,10 +46,7 @@ class DeploymentMultinodeSerializer(object):
neutron_network_serializer = \
neutron_serializers.NeutronNetworkDeploymentSerializer
critical_roles = frozenset(('controller', 'ceph-osd', 'primary-mongo',
'primary-database', 'primary-rabbitmq',
'primary-keystone', 'primary-neutron',
'database', 'keystone', 'neutron', 'rabbitmq'))
critical_roles = frozenset(('controller', 'ceph-osd', 'primary-mongo'))
def __init__(self, tasks_graph=None):
self.task_graph = tasks_graph
@ -337,15 +334,7 @@ class DeploymentHASerializer(DeploymentMultinodeSerializer):
'primary-mongo',
'primary-swift-proxy',
'ceph-osd',
'controller',
'primary-database',
'primary-rabbitmq',
'primary-keystone',
'primary-neutron',
'database',
'keystone',
'neutron',
'rabbitmq'
'controller'
))
def get_last_controller(self, nodes):

View File

@ -42,79 +42,6 @@ DEPLOYMENT_51_60 = """
strategy:
type: parallel
amount: 6
- id: primary-database
type: group
role: [primary-database]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: database
type: group
role: [database]
requires: [primary-database]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: primary-keystone
type: group
role: [primary-keystone]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: keystone
type: group
role: [keystone]
requires: [primary-keystone]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: primary-rabbitmq
type: group
role: [primary-rabbitmq]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: rabbitmq
type: group
role: [rabbitmq]
requires: [primary-rabbitmq]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: primary-neutron
type: group
role: [primary-neutron]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: neutron
type: group
role: [neutron]
requires: [primary-neutron]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: cinder
type: group
role: [cinder]
@ -202,79 +129,6 @@ DEPLOYMENT_50 = """
parameters:
strategy:
type: one_by_one
- id: primary-database
type: group
role: [primary-database]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: database
type: group
role: [database]
requires: [primary-database]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: primary-keystone
type: group
role: [primary-keystone]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: keystone
type: group
role: [keystone]
requires: [primary-keystone]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: primary-rabbitmq
type: group
role: [primary-rabbitmq]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: rabbitmq
type: group
role: [rabbitmq]
requires: [primary-rabbitmq]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: primary-neutron
type: group
role: [primary-neutron]
required_for: [deploy_end]
requires: [deploy_start]
parameters:
strategy:
type: one_by_one
- id: neutron
type: group
role: [neutron]
requires: [primary-neutron]
required_for: [deploy_end]
parameters:
strategy:
type: one_by_one
- id: cinder
type: group
role: [cinder]

View File

@ -34,9 +34,6 @@ from nailgun.utils import reverse
class TestHandlers(BaseIntegrationTest):
primary_controller_tags = ['primary-controller', 'primary-database',
'primary-keystone', 'primary-neutron',
'primary-rabbitmq']
@mock_rpc(pass_mock=True)
def test_nova_deploy_cast_with_right_args(self, mocked_rpc):
@ -116,7 +113,7 @@ class TestHandlers(BaseIntegrationTest):
for node in nodes_db:
node_id = node.id
admin_ip = admin_ips.pop()
for role in sorted(node.tag_names):
for role in sorted(node.roles + node.pending_roles):
assigned_ips[node_id] = {}
assigned_ips[node_id]['internal'] = '192.168.0.%d' % (i + 2)
assigned_ips[node_id]['public'] = '172.16.0.%d' % (i + 3)
@ -146,9 +143,7 @@ class TestHandlers(BaseIntegrationTest):
deepcopy(nodes_list))
common_attrs['nodes'] = nodes_list
for node, role in zip(common_attrs['nodes'],
self.primary_controller_tags):
node['role'] = role
common_attrs['nodes'][0]['role'] = 'primary-controller'
common_attrs['last_controller'] = controller_nodes[-1]['name']
common_attrs['storage']['pg_num'] = 128
@ -175,17 +170,13 @@ class TestHandlers(BaseIntegrationTest):
'primary-controller': True,
'controller': True,
'cinder': False,
'compute': False,
'database': True,
'keystone': True,
'rabbitmq': True,
'neutron': True
'compute': False
}
deployment_info = []
for node in nodes_db:
ips = assigned_ips[node.id]
for role in sorted(node.tag_names):
for role in sorted(node.roles):
is_critical = critical_mapping[role]
individual_atts = {
@ -223,9 +214,11 @@ class TestHandlers(BaseIntegrationTest):
individual_atts.update(common_attrs)
deployment_info.append(deepcopy(individual_atts))
for node, role in zip(deployment_info, self.primary_controller_tags):
node['role'] = role
node['fail_if_error'] = True
controller_nodes = filter(
lambda node: node['role'] == 'controller',
deployment_info)
controller_nodes[0]['role'] = 'primary-controller'
controller_nodes[0]['fail_if_error'] = True
supertask = self.env.launch_deployment()
deploy_task_uuid = [x.uuid for x in supertask.subtasks
@ -537,7 +530,7 @@ class TestHandlers(BaseIntegrationTest):
for node in nodes_db:
node_id = node.id
admin_ip = admin_ips.pop()
for role in sorted(node.tag_names):
for role in sorted(node.roles + node.pending_roles):
assigned_ips[node_id] = {}
assigned_ips[node_id]['management'] = '192.168.0.%d' % (i + 2)
assigned_ips[node_id]['public'] = '172.16.0.%d' % (i + 3)
@ -567,9 +560,8 @@ class TestHandlers(BaseIntegrationTest):
deepcopy(nodes_list))
common_attrs['nodes'] = nodes_list
for node, role in zip(common_attrs['nodes'],
self.primary_controller_tags):
node['role'] = role
common_attrs['nodes'][0]['role'] = 'primary-controller'
common_attrs['last_controller'] = controller_nodes[-1]['name']
common_attrs['storage']['pg_num'] = 128
@ -595,17 +587,13 @@ class TestHandlers(BaseIntegrationTest):
'primary-controller': True,
'controller': True,
'cinder': False,
'compute': False,
'database': True,
'keystone': True,
'rabbitmq': True,
'neutron': True
'compute': False
}
deployment_info = []
for node in nodes_db:
ips = assigned_ips[node.id]
for role in sorted(node.tag_names):
for role in sorted(node.roles):
is_critical = critical_mapping[role]
individual_atts = {
@ -694,9 +682,11 @@ class TestHandlers(BaseIntegrationTest):
individual_atts.update(common_attrs)
deployment_info.append(deepcopy(individual_atts))
for node, role in zip(deployment_info, self.primary_controller_tags):
node['role'] = role
node['fail_if_error'] = True
controller_nodes = filter(
lambda node: node['role'] == 'controller',
deployment_info)
controller_nodes[0]['role'] = 'primary-controller'
controller_nodes[0]['fail_if_error'] = True
supertask = self.env.launch_deployment()
deploy_task_uuid = [x.uuid for x in supertask.subtasks
@ -1028,7 +1018,7 @@ class TestHandlers(BaseIntegrationTest):
for node in nodes_db:
node_id = node.id
admin_ip = admin_ips.pop()
for role in sorted(node.tag_names):
for role in sorted(node.roles + node.pending_roles):
assigned_ips[node_id] = {}
assigned_ips[node_id]['management'] = '192.168.0.%d' % (i + 2)
assigned_ips[node_id]['public'] = '172.16.0.%d' % (i + 3)
@ -1058,9 +1048,7 @@ class TestHandlers(BaseIntegrationTest):
deepcopy(nodes_list))
common_attrs['tasks'] = []
common_attrs['nodes'] = nodes_list
for node, role in zip(common_attrs['nodes'],
self.primary_controller_tags):
node['role'] = role
common_attrs['nodes'][0]['role'] = 'primary-controller'
common_attrs['last_controller'] = controller_nodes[-1]['name']
common_attrs['storage']['pg_num'] = 128
@ -1087,20 +1075,17 @@ class TestHandlers(BaseIntegrationTest):
'primary-controller': True,
'controller': True,
'cinder': False,
'compute': False,
'database': True,
'keystone': True,
'rabbitmq': True,
'neutron': True
'compute': False
}
deployment_info = []
nm = objects.Cluster.get_network_manager(cluster_db)
nm = objects.Cluster.get_network_manager(node.cluster)
for node in nodes_db:
ips = assigned_ips[node.id]
other_nets = nm.get_networks_not_on_node(node)
for role in sorted(node.tag_names):
for role in sorted(node.roles):
is_critical = critical_mapping[role]
individual_atts = {
@ -1205,9 +1190,11 @@ class TestHandlers(BaseIntegrationTest):
individual_atts.update(common_attrs)
deployment_info.append(deepcopy(individual_atts))
for node, role in zip(deployment_info, self.primary_controller_tags):
node['role'] = role
node['fail_if_error'] = True
controller_nodes = filter(
lambda node: node['role'] == 'controller',
deployment_info)
controller_nodes[0]['role'] = 'primary-controller'
controller_nodes[0]['fail_if_error'] = True
supertask = self.env.launch_deployment()
deploy_task_uuid = [x.uuid for x in supertask.subtasks
@ -1425,7 +1412,7 @@ class TestHandlers(BaseIntegrationTest):
# deploy method call [1][0][1][1]
n_rpc_deploy = mocked_rpc.call_args_list[
1][0][1][1]['args']['deployment_info']
self.assertEqual(len(n_rpc_deploy), 5)
self.assertEqual(len(n_rpc_deploy), 1)
self.assertEqual(n_rpc_deploy[0]['uid'], str(self.env.nodes[0].id))
@mock_rpc(pass_mock=True)
@ -1457,20 +1444,18 @@ class TestHandlers(BaseIntegrationTest):
self.assertEqual(len(args[1]), 2)
n_rpc_deploy = args[1][1]['args']['deployment_info']
self.assertEqual(len(n_rpc_deploy), 25)
self.assertEqual(len(n_rpc_deploy), 5)
pub_ips = ['172.16.0.11', '172.16.0.12', '172.16.0.13',
'172.16.0.20', '172.16.0.21', '172.16.0.22']
for n in n_rpc_deploy:
self.assertIn('management_vrouter_vip', n)
self.assertIn('public_vrouter_vip', n)
old_nodes = n_rpc_deploy[0]['nodes']
used_ips = []
for n in {v['uid']: v for v in old_nodes}.values():
self.assertIn(n['public_address'], pub_ips)
self.assertNotIn(n['public_address'], used_ips)
used_ips.append(n['public_address'])
used_ips = []
for n_common_args in n['nodes']:
self.assertIn(n_common_args['public_address'], pub_ips)
self.assertNotIn(n_common_args['public_address'], used_ips)
used_ips.append(n_common_args['public_address'])
self.assertIn('management_vrouter_vip', n)
@mock_rpc(pass_mock=True)
def test_deploy_ha_neutron_gre_w_custom_public_ranges(self, mocked_rpc):
@ -1501,18 +1486,16 @@ class TestHandlers(BaseIntegrationTest):
self.assertEqual(len(args[1]), 2)
n_rpc_deploy = args[1][1]['args']['deployment_info']
self.assertEqual(len(n_rpc_deploy), 25)
self.assertEqual(len(n_rpc_deploy), 5)
pub_ips = ['172.16.0.11', '172.16.0.12', '172.16.0.13',
'172.16.0.20', '172.16.0.21', '172.16.0.22']
for n in n_rpc_deploy:
self.assertEqual(n['public_vip'], '172.16.0.10')
old_nodes = n_rpc_deploy[0]['nodes']
used_ips = []
for n in {v['uid']: v for v in old_nodes}.values():
self.assertIn(n['public_address'], pub_ips)
self.assertNotIn(n['public_address'], used_ips)
used_ips.append(n['public_address'])
used_ips = []
for n_common_args in n['nodes']:
self.assertIn(n_common_args['public_address'], pub_ips)
self.assertNotIn(n_common_args['public_address'], used_ips)
used_ips.append(n_common_args['public_address'])
@mock_rpc(pass_mock=True)
def test_deploy_neutron_gre_w_changed_public_cidr(self, mocked_rpc):
@ -1542,7 +1525,7 @@ class TestHandlers(BaseIntegrationTest):
self.assertEqual(len(args[1]), 2)
n_rpc_deploy = args[1][1]['args']['deployment_info']
self.assertEqual(len(n_rpc_deploy), 10)
self.assertEqual(len(n_rpc_deploy), 2)
pub_ips = ['172.16.10.11', '172.16.10.12', '172.16.10.13']
for n in n_rpc_deploy:
for n_common_args in n['nodes']:
@ -1890,8 +1873,8 @@ class TestHandlers(BaseIntegrationTest):
deployment_info = args[1][0]['args']['deployment_info']
self.assertItemsEqual(
set([node.uid for node in self.env.nodes]),
set([node['uid'] for node in deployment_info])
[node.uid for node in self.env.nodes],
[node['uid'] for node in deployment_info]
)
def _test_run(self, mcast, mode='dry_run'):
@ -2163,86 +2146,6 @@ class TestGranularDeployment(BaseIntegrationTest):
'required_for': ['post_deployment_end'],
'reexecute_on': ['deploy_changes'],
},
{
'fault_tolerance': 0,
'id': 'primary-database',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'roles': ['primary-database'],
'role': 'primary-database',
'type': 'group'
},
{
'fault_tolerance': 0,
'id': 'primary-keystone',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'roles': ['primary-keystone'],
'role': 'primary-keystone',
'type': 'group'
},
{
'fault_tolerance': 0,
'id': 'primary-rabbitmq',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'roles': ['primary-rabbitmq'],
'role': 'primary-rabbitmq',
'type': 'group'
},
{
'fault_tolerance': 0,
'id': 'primary-neutron',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'roles': ['primary-neutron'],
'role': 'primary-neutron',
'type': 'group'
},
{
'fault_tolerance': 0,
'id': 'database',
'parameters': {'strategy': {'amount': 6, 'type': 'parallel'}},
'required_for': ['deploy_end'],
'requires': ['primary-database'],
'roles': ['database'],
'role': 'database',
'type': 'group'
},
{
'fault_tolerance': 0,
'id': 'keystone',
'parameters': {'strategy': {'amount': 6, 'type': 'parallel'}},
'required_for': ['deploy_end'],
'requires': ['primary-keystone'],
'roles': ['keystone'],
'role': 'keystone',
'type': 'group'
},
{
'fault_tolerance': 0,
'id': 'rabbitmq',
'parameters': {'strategy': {'amount': 6, 'type': 'parallel'}},
'required_for': ['deploy_end'],
'requires': ['primary-rabbitmq'],
'roles': ['rabbitmq'],
'role': 'rabbitmq',
'type': 'group'
},
{
'fault_tolerance': 0,
'id': 'neutron',
'parameters': {'strategy': {'amount': 6, 'type': 'parallel'}},
'required_for': ['deploy_end'],
'requires': ['primary-neutron'],
'roles': ['neutron'],
'role': 'neutron',
'type': 'group'
},
]
n1 = self.env.create_node(

View File

@ -625,7 +625,7 @@ class TestReleasePluginsGraphHandler(BaseGraphTasksTests,
headers=self.default_headers,
)
self.assertEqual(resp.status_code, 200)
self.assertEqual(len(resp.json), 32) # default release tasks
self.assertEqual(len(resp.json), 24) # default release tasks
def test_get_existing_custom_deployment_tasks(self):
resp = self.app.get(

View File

@ -163,7 +163,7 @@ class TestDefaultOrchestratorInfoHandlers(BaseIntegrationTest):
self.assertEqual(resp.status_code, 200)
actual_uids = [node['uid'] for node in resp.json_body]
node_ids.append('common')
self.assertItemsEqual(set(actual_uids), node_ids)
self.assertItemsEqual(actual_uids, node_ids)
def test_cluster_provisioning_customization(self):
facts = {'engine': {'1': '2'}}
@ -241,8 +241,8 @@ class BaseSelectedNodesTest(BaseIntegrationTest):
else:
deployed_uids = [n['uid'] for n in
args[1]['args']['deployment_info']]
self.assertEqual(len(nodes_uids), len(set(deployed_uids)))
self.assertItemsEqual(nodes_uids, set(deployed_uids))
self.assertEqual(len(nodes_uids), len(deployed_uids))
self.assertItemsEqual(nodes_uids, deployed_uids)
def check_resp_declined(self, resp):
self.assertEqual(resp.status_code, 400)
@ -627,7 +627,7 @@ class TestDeploymentHandlerSkipTasks(BaseSelectedNodesTest):
args, kwargs = mcast.call_args
deployed_uids = [n['uid'] for n in args[1]['args']['deployment_info']]
deployment_data = args[1]['args']['deployment_info'][0]
self.assertItemsEqual(set(deployed_uids), self.node_uids)
self.assertItemsEqual(deployed_uids, self.node_uids)
self.assertEqual(len(deployment_data['tasks']), 1)
def test_deployment_is_forbidden(self):

View File

@ -209,12 +209,8 @@ class TestNovaOrchestratorSerializer(OrchestratorSerializerTestBase):
return cluster_db
def assert_roles_flattened(self, nodes):
self.assertEqual(len(nodes), 11)
self.assertEqual(len(nodes), 7)
self.assert_nodes_with_role(nodes, 'controller', 1)
self.assert_nodes_with_role(nodes, 'database', 1)
self.assert_nodes_with_role(nodes, 'keystone', 1)
self.assert_nodes_with_role(nodes, 'neutron', 1)
self.assert_nodes_with_role(nodes, 'rabbitmq', 1)
self.assert_nodes_with_role(nodes, 'compute', 2)
self.assert_nodes_with_role(nodes, 'cinder', 3)
self.assert_nodes_with_role(nodes, 'mongo', 1)
@ -451,11 +447,7 @@ class TestNovaOrchestratorSerializer(OrchestratorSerializerTestBase):
{'fail_if_error': False, 'role': 'compute'},
{'fail_if_error': False, 'role': 'compute'},
{'fail_if_error': True, 'role': 'primary-mongo'},
{'fail_if_error': False, 'role': 'cinder'},
{'fail_if_error': True, 'role': 'primary-database'},
{'fail_if_error': True, 'role': 'primary-keystone'},
{'fail_if_error': True, 'role': 'primary-neutron'},
{'fail_if_error': True, 'role': 'primary-rabbitmq'}
{'fail_if_error': False, 'role': 'cinder'}
]
self.assertItemsEqual(
@ -1328,19 +1320,7 @@ class TestNovaOrchestratorHASerializer(OrchestratorSerializerTestBase):
{'fail_if_error': False, 'role': 'compute'},
{'fail_if_error': False, 'role': 'compute'},
{'fail_if_error': True, 'role': 'primary-mongo'},
{'fail_if_error': False, 'role': 'cinder'},
{'fail_if_error': True, 'role': 'primary-database'},
{'fail_if_error': True, 'role': 'primary-keystone'},
{'fail_if_error': True, 'role': 'primary-neutron'},
{'fail_if_error': True, 'role': 'primary-rabbitmq'},
{'fail_if_error': True, 'role': u'database'},
{'fail_if_error': True, 'role': u'database'},
{'fail_if_error': True, 'role': u'keystone'},
{'fail_if_error': True, 'role': u'keystone'},
{'fail_if_error': True, 'role': u'neutron'},
{'fail_if_error': True, 'role': u'neutron'},
{'fail_if_error': True, 'role': u'rabbitmq'},
{'fail_if_error': True, 'role': u'rabbitmq'}
{'fail_if_error': False, 'role': 'cinder'}
]
self.assertItemsEqual(
@ -1509,12 +1489,8 @@ class TestNeutronOrchestratorSerializer(OrchestratorSerializerTestBase):
return serializer.serialize(cluster, cluster.nodes)
def assert_roles_flattened(self, nodes):
self.assertEqual(len(nodes), 10)
self.assertEqual(len(nodes), 6)
self.assert_nodes_with_role(nodes, 'controller', 1)
self.assert_nodes_with_role(nodes, 'database', 1)
self.assert_nodes_with_role(nodes, 'keystone', 1)
self.assert_nodes_with_role(nodes, 'neutron', 1)
self.assert_nodes_with_role(nodes, 'rabbitmq', 1)
self.assert_nodes_with_role(nodes, 'compute', 2)
self.assert_nodes_with_role(nodes, 'cinder', 3)
@ -1662,7 +1638,7 @@ class TestNeutronOrchestratorSerializer(OrchestratorSerializerTestBase):
# We have 6 roles on 4 nodes summarily.
# Only 1 node w 2 roles (controller+cinder) will have public
# when 'assign_to_all_nodes' option is switched off
self.assertEqual(roles_w_public_count, 10 if assign else 6)
self.assertEqual(roles_w_public_count, 6 if assign else 2)
# Check uncommon attrs
node_uids = sorted(set([int(n['uid']) for n in node_list]))

View File

@ -734,30 +734,6 @@ class TestPluginDeploymentTasksInjection70(base.BaseIntegrationTest):
'requires': ['deploy_start'],
'role': ['primary-controller'],
'type': 'group'},
{'id': 'primary-database',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'role': ['primary-database'],
'type': 'group'},
{'id': 'primary-keystone',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'role': ['primary-keystone'],
'type': 'group'},
{'id': 'primary-neutron',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'role': ['primary-neutron'],
'type': 'group'},
{'id': 'primary-rabbitmq',
'parameters': {'strategy': {'type': 'one_by_one'}},
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
'role': ['primary-rabbitmq'],
'type': 'group'},
{'id': 'first-fake-depl-task',
'required_for': ['deploy_end'],
'requires': ['deploy_start'],
@ -1342,8 +1318,8 @@ class TestNetworkTemplateSerializer70(BaseDeploymentSerializer,
serialized_for_astute = deployment_info_to_legacy(
serialized_for_astute)
# 15 node roles on 5 nodes
self.assertEqual(len(serialized_for_astute), 15)
# 7 node roles on 5 nodes
self.assertEqual(len(serialized_for_astute), 7)
for node_data in serialized_for_astute:
node = objects.Node.get_by_uid(node_data['uid'])
for node_roles, net_names in node_roles_vs_net_names:

View File

@ -765,7 +765,7 @@ class TestDeploymentHASerializer90(
def test_serialize_with_customized(self):
cluster = self.env.clusters[0]
serializer = deployment_serializers.DeploymentLCMSerializer()
serializer = self.create_serializer(cluster)
objects.Cluster.prepare_for_deployment(cluster)
serialized = serializer.serialize(cluster, cluster.nodes)

View File

@ -893,7 +893,7 @@ class TestTaskManagers(BaseIntegrationTest):
deployment_info = args[1][0]['args']['deployment_info']
self.assertItemsEqual(
[node.uid for node in self.env.nodes],
set([node['uid'] for node in deployment_info])
[node['uid'] for node in deployment_info]
)
@fake_tasks()

View File

@ -789,14 +789,11 @@ class TestNodeObject(BaseIntegrationTest):
cluster_kwargs={'api': False},
nodes_kwargs=[{'role': 'controller'}])
node = self.env.nodes[0]
node_tags = ['controller', 'database', 'keystone', 'neutron',
'rabbitmq']
self.assertEqual(node_tags, objects.Node.all_tags(node))
self.assertEqual(['controller'], objects.Node.all_tags(node))
objects.Node.update_roles(node, ['controller', 'cinder'])
node_tags.append('cinder')
self.assertItemsEqual(
node_tags, objects.Node.all_tags(node)
['controller', 'cinder'], objects.Node.all_tags(node)
)
t = objects.Tag.create({
@ -809,9 +806,8 @@ class TestNodeObject(BaseIntegrationTest):
node.tags.append(node_tag)
self.db.add(node_tag)
self.db.flush()
node_tags.append('test')
self.assertItemsEqual(
node_tags, objects.Node.all_tags(node)
['controller', 'cinder', 'test'], objects.Node.all_tags(node)
)
objects.Node.update_roles(node, [])

View File

@ -52,8 +52,10 @@ class BasePrimaryRolesAssignmentTestCase(base.BaseTestCase):
objects.Cluster.set_primary_tags(cluster, cluster.nodes)
nodes = sorted(cluster.nodes, key=lambda node: node.id)
# with lowest uid is assigned as primary
self.assertIn(self.primary_role_name, objects.Node.all_tags(nodes[0]))
self.assertIn(self.role_name, objects.Node.all_tags(nodes[1]))
self.assertEqual(
objects.Node.all_tags(nodes[0]), [self.primary_role_name])
self.assertEqual(
objects.Node.all_tags(nodes[1]), [self.role_name])
def test_primary_controller_assigned_for_ready_node(self):
cluster = self.env.create(
@ -73,8 +75,10 @@ class BasePrimaryRolesAssignmentTestCase(base.BaseTestCase):
ready_node = next(n for n in cluster.nodes
if n.status == consts.NODE_STATUSES.ready)
self.assertEqual(nodes[1], ready_node)
self.assertIn(self.primary_role_name, objects.Node.all_tags(nodes[1]))
self.assertIn(self.role_name, objects.Node.all_tags(nodes[0]))
self.assertEqual(
objects.Node.all_tags(nodes[1]), [self.primary_role_name])
self.assertEqual(
objects.Node.all_tags(nodes[0]), [self.role_name])
def test_primary_assignment_multinode(self):
"""Primary should not be assigned in multinode env."""
@ -92,8 +96,10 @@ class BasePrimaryRolesAssignmentTestCase(base.BaseTestCase):
'status': consts.NODE_STATUSES.ready,
'pending_addition': True}])
objects.Cluster.set_primary_tags(cluster, cluster.nodes)
self.assertIn(self.role_name, objects.Node.all_tags(cluster.nodes[0]))
self.assertIn(self.role_name, objects.Node.all_tags(cluster.nodes[1]))
self.assertEqual(
objects.Node.all_tags(cluster.nodes[0]), [self.role_name])
self.assertEqual(
objects.Node.all_tags(cluster.nodes[1]), [self.role_name])
def test_primary_not_assigned_to_pending_deletion(self):
cluster = self.env.create(
@ -105,7 +111,8 @@ class BasePrimaryRolesAssignmentTestCase(base.BaseTestCase):
'status': consts.NODE_STATUSES.ready,
'pending_deletion': True}])
objects.Cluster.set_primary_tags(cluster, cluster.nodes)
self.assertIn(self.role_name, objects.Node.all_tags(cluster.nodes[0]))
self.assertEqual(
objects.Node.all_tags(cluster.nodes[0]), [self.role_name])
@contextmanager
def assert_node_reassigned(self):
@ -122,11 +129,14 @@ class BasePrimaryRolesAssignmentTestCase(base.BaseTestCase):
'pending_addition': True}])
objects.Cluster.set_primary_tags(cluster, cluster.nodes)
nodes = sorted(cluster.nodes, key=lambda node: node.id)
self.assertIn(self.primary_role_name, objects.Node.all_tags(nodes[1]))
self.assertIn(self.role_name, objects.Node.all_tags(nodes[0]))
self.assertEqual(
objects.Node.all_tags(nodes[1]), [self.primary_role_name])
self.assertEqual(
objects.Node.all_tags(nodes[0]), [self.role_name])
yield nodes[1]
objects.Cluster.set_primary_tags(cluster, cluster.nodes)
self.assertIn(self.primary_role_name, objects.Node.all_tags(nodes[0]))
self.assertEqual(
objects.Node.all_tags(nodes[0]), [self.primary_role_name])
def test_primary_assign_after_reset_to_discovery(self):
"""Removing primary roles after resetting node to discovery"""