Merge "Merge 'profile' into 'capabilities'"
This commit is contained in:
commit
b029d5e198
|
@ -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
|
||||
|
|
|
@ -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'}]},
|
||||
|
|
Loading…
Reference in New Issue