Merge "Revert "Add default tags""
This commit is contained in:
commit
3734dd6939
|
@ -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]
|
||||
|
|
|
@ -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:
|
||||
-
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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]))
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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, [])
|
||||
|
|
|
@ -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"""
|
||||
|
|
Loading…
Reference in New Issue