Fix a key error in _process_role() + pep8 and py27 tests
The role does not always override the network information. Update the networks in role_env, get the network from parameter_defaults, fallback to parameters if not set and finally if the netwok is not in parameters set default. Also make default for networks: in templates json instead of literal string.
This commit is contained in:
parent
ef30ff2e56
commit
c1364026fa
|
@ -354,11 +354,14 @@ def _process_role(role_file, base_envs, stack_name, args):
|
|||
_add_identifier(role_env, 'overcloud_storage_net', args.id)
|
||||
_add_identifier(role_env, 'overcloud_storage_mgmt_net', args.id)
|
||||
_add_identifier(role_env, 'overcloud_tenant_net', args.id)
|
||||
role_env['parameter_defaults']['networks'] = {
|
||||
'private': role_env['parameter_defaults']['private_net'],
|
||||
'provision': role_env['parameter_defaults']['provision_net'],
|
||||
'public': role_env['parameter_defaults']['public_net'],
|
||||
}
|
||||
if not role_env['parameter_defaults'].get('networks'):
|
||||
role_env['parameter_defaults']['networks'] = {}
|
||||
for k, v in {'private': 'private_net',
|
||||
'provision': 'provision_net',
|
||||
'public': 'public_net'}.items():
|
||||
role_env['parameter_defaults']['networks'].update(
|
||||
{k: role_env['parameter_defaults'].get(
|
||||
v, role_env['parameters'].get(v, k))})
|
||||
role_file = 'env-%s-%s.yaml' % (stack_name, role)
|
||||
_write_role_file(role_env, role_file)
|
||||
return role_file, role
|
||||
|
|
|
@ -192,11 +192,11 @@ class TestIdEnv(unittest.TestCase):
|
|||
# _process_role test data
|
||||
role_base_data = {
|
||||
'parameter_defaults': {
|
||||
'overcloud_storage_mgmt_net': 'storage_mgmt-foo',
|
||||
'overcloud_internal_net': 'internal-foo',
|
||||
'overcloud_storage_net': 'storage-foo',
|
||||
'overcloud_storage_mgmt_net': 'storage_mgmt',
|
||||
'overcloud_internal_net': 'internal',
|
||||
'overcloud_storage_net': 'storage',
|
||||
'overcloud_tenant_net': 'tenant',
|
||||
'role': 'control',
|
||||
'overcloud_tenant_net': 'tenant-foo'
|
||||
},
|
||||
'parameters': {
|
||||
'os_user': 'admin',
|
||||
|
@ -398,8 +398,16 @@ class TestDeploy(testtools.TestCase):
|
|||
output['parameters']['bmc_prefix'])
|
||||
# These should be inherited
|
||||
self.assertEqual('ipxe-boot', output['parameters']['baremetal_image'])
|
||||
self.assertEqual('tenant-foo',
|
||||
self.assertEqual('tenant-' + args.id,
|
||||
output['parameter_defaults']['overcloud_tenant_net'])
|
||||
self.assertEqual('internal-' + args.id,
|
||||
output['parameter_defaults']['overcloud_internal_net']
|
||||
)
|
||||
self.assertEqual('storage-' + args.id,
|
||||
output['parameter_defaults']['overcloud_storage_net'])
|
||||
self.assertEqual('storage_mgmt-' + args.id,
|
||||
output['parameter_defaults'][
|
||||
'overcloud_storage_mgmt_net'])
|
||||
# This should not be present in a role env, even if set in the file
|
||||
self.assertNotIn('OS::OVB::BaremetalNetworks',
|
||||
output['resource_registry'])
|
||||
|
|
|
@ -52,7 +52,7 @@ parameters:
|
|||
|
||||
networks:
|
||||
type: json
|
||||
default: '{"private": "private", "provision": "provision"}'
|
||||
default: {"private": "private", "provision": "provision"}
|
||||
description: A map of networks to their names.
|
||||
|
||||
bmc_prefix:
|
||||
|
|
Loading…
Reference in New Issue