Merge "Merge 'profile' into 'capabilities'"

This commit is contained in:
Zuul 2021-03-30 03:55:40 +00:00 committed by Gerrit Code Review
commit b029d5e198
2 changed files with 60 additions and 37 deletions

View File

@ -186,12 +186,19 @@ def expand(roles, stack_name, expand_provisioned=True, default_image=None,
if default_network_config:
default_network_config = defaults.setdefault('network_config', {})
if 'profile' in defaults:
capabilities = defaults.setdefault('capabilities', {})
capabilities.setdefault('profile', defaults['profile'])
del defaults['profile']
for inst in role.get('instances', []):
merge_networks_defaults(defaults, inst)
merge_network_config_defaults(defaults, inst)
for k, v in defaults.items():
inst.setdefault(k, v)
# Need to use deepcopy here so defaults are not accidentally
# changed by per-instance manipulations
inst.setdefault(k, dcopy(v))
# Set the default hostname now for duplicate hostname
# detection during validation
@ -280,6 +287,11 @@ def expand(roles, stack_name, expand_provisioned=True, default_image=None,
_remove_vif_key(vif_networks)
inst.setdefault('nics', vif_networks)
if 'profile' in inst:
capabilities = inst.setdefault('capabilities', {})
capabilities['profile'] = inst['profile']
del inst['profile']
if unprovisioned_indexes:
parameter_defaults['%sRemovalPolicies' % name] = [{
'resource_list': unprovisioned_indexes

View File

@ -357,23 +357,28 @@ class TestExpandRoles(base.TestCase):
)
self.assertEqual(
[
{'hostname': 'compute-0.example.com', 'profile': 'compute',
{'hostname': 'compute-0.example.com',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'},
'ssh_public_keys': 'aaaa',
'user_name': 'heat-admin'},
{'hostname': 'compute-1.example.com', 'profile': 'compute',
{'hostname': 'compute-1.example.com',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'},
'ssh_public_keys': 'aaaa',
'user_name': 'heat-admin'},
{'hostname': 'controller-0.example.com', 'profile': 'control',
{'hostname': 'controller-0.example.com',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'},
'ssh_public_keys': 'aaaa',
'user_name': 'heat-admin'},
{'hostname': 'controller-1.example.com', 'profile': 'control',
{'hostname': 'controller-1.example.com',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'},
'ssh_public_keys': 'aaaa',
'user_name': 'heat-admin'},
{'hostname': 'controller-2.example.com', 'profile': 'control',
{'hostname': 'controller-2.example.com',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'},
'ssh_public_keys': 'aaaa',
'user_name': 'heat-admin'},
@ -438,18 +443,21 @@ class TestExpandRoles(base.TestCase):
)
self.assertEqual(
[
{'hostname': 'compute-0.example.com', 'profile': 'compute',
{'hostname': 'compute-0.example.com',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'}},
{'hostname': 'compute-1.example.com', 'profile': 'compute',
{'hostname': 'compute-1.example.com',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'}},
{'hostname': 'controller-X.example.com',
'image': {'href': 'overcloud-full'},
'profile': 'control-X',
'capabilities': {'profile': 'control-X'},
'networks': [{'fixed_ip': '10.1.1.1', 'network': 'inst_net'},
{'network': 'foo', 'subnet': 'foo_subnet'}],
},
# Name provides the default for hostname later on.
{'name': 'node-0', 'profile': 'control',
{'name': 'node-0',
'capabilities': {'profile': 'control'},
'hostname': 'node-0',
'networks': [
{'network': 'some_net', 'subnet': 'leaf-2', 'vif': True},
@ -511,26 +519,26 @@ class TestExpandRoles(base.TestCase):
self.assertEqual([
{
'hostname': 'compute-0.example.com',
'profile': 'compute',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'compute-1.example.com',
'profile': 'compute',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'controller-X.example.com',
'profile': 'control-X',
'capabilities': {'profile': 'control-X'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'node-0',
'name': 'node-0',
'nics': [{'subnet': 'leaf-2'}],
'profile': 'control',
'capabilities': {'profile': 'control'},
'traits': ['CUSTOM_FOO'],
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'overcloud-controller-2',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -577,11 +585,11 @@ class TestExpandRoles(base.TestCase):
self.assertEqual([
{
'hostname': 'overcloud-controller-0',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'overcloud-controller-3',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -609,11 +617,11 @@ class TestExpandRoles(base.TestCase):
self.assertEqual([
{
'hostname': 'overcloud-controller-1',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'overcloud-controller-2',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -643,19 +651,19 @@ class TestExpandRoles(base.TestCase):
self.assertEqual([
{
'hostname': 'overcloud-controller-0',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'overcloud-controller-3',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'overcloud-controller-4',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'overcloud-controller-5',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -687,11 +695,11 @@ class TestExpandRoles(base.TestCase):
self.assertEqual([
{
'hostname': 'overcloud-controller-1',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'overcloud-controller-2',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -728,12 +736,12 @@ class TestExpandRoles(base.TestCase):
{
'hostname': 'controller-0',
'name': 'node-0',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'controller-3',
'name': 'node-3',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -759,12 +767,12 @@ class TestExpandRoles(base.TestCase):
{
'hostname': 'controller-1',
'name': 'node-1',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'controller-2',
'name': 'node-2',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -799,12 +807,12 @@ class TestExpandRoles(base.TestCase):
{
'hostname': 'node-0',
'name': 'node-0',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'node-3',
'name': 'node-3',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -832,12 +840,12 @@ class TestExpandRoles(base.TestCase):
{
'hostname': 'node-1',
'name': 'node-1',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}, {
'hostname': 'node-2',
'name': 'node-2',
'profile': 'control',
'capabilities': {'profile': 'control'},
'image': {'href': 'overcloud-full'}
}],
instances)
@ -905,14 +913,17 @@ class TestExpandRoles(base.TestCase):
)
self.assertEqual(
[
{'hostname': 'compute-0.example.com', 'profile': 'compute',
{'hostname': 'compute-0.example.com',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'}},
{'hostname': 'compute-1.example.com', 'profile': 'compute',
{'hostname': 'compute-1.example.com',
'capabilities': {'profile': 'compute'},
'image': {'href': 'overcloud-full'}},
{'hostname': 'overcloud-controller-0', 'profile': 'control-X',
{'hostname': 'overcloud-controller-0',
'capabilities': {'profile': 'control-X'},
'image': {'href': 'overcloud-full'}},
# Name provides the default for hostname
{'name': 'node-0', 'profile': 'control',
{'name': 'node-0', 'capabilities': {'profile': 'control'},
'hostname': 'node-0',
'image': {'href': 'overcloud-full'},
'traits': ['CUSTOM_FOO'], 'nics': [{'subnet': 'leaf-2'}]},