Fix role id logic
There was a minor bug in the role id logic that was causing the id to incorrectly have a trailing - if a role of '' was passed in the deployment. Since env-base.yaml includes this value, we need to handle it correctly.
This commit is contained in:
parent
d67f0cf65b
commit
b315f165e2
|
@ -131,7 +131,7 @@ def _generate_id_env(args):
|
|||
_add_identifier(env_data, 'public_net', args.id, default='public')
|
||||
_add_identifier(env_data, 'baremetal_prefix', args.id, default='baremetal')
|
||||
role = env_data['parameter_defaults'].get('role')
|
||||
if role is not None:
|
||||
if role:
|
||||
_add_identifier(env_data, 'baremetal_prefix', role)
|
||||
_add_identifier(env_data, 'bmc_prefix', args.id, default='bmc')
|
||||
_add_identifier(env_data, 'undercloud_name', args.id, default='undercloud')
|
||||
|
|
|
@ -93,6 +93,7 @@ test_env = u"""parameters:
|
|||
test_env_param_defaults = u"""
|
||||
parameter_defaults:
|
||||
overcloud_internal_net: internalapi
|
||||
role: ''
|
||||
"""
|
||||
test_env_output = {
|
||||
'baremetal_prefix': 'baremetal-foo',
|
||||
|
@ -162,6 +163,26 @@ class TestIdEnv(unittest.TestCase):
|
|||
self.assertEqual(v, dumped_dict['parameters'][k])
|
||||
self.assertEqual(v, dumped_dict['parameter_defaults'][k])
|
||||
|
||||
@mock.patch('openstack_virtual_baremetal.deploy._build_env_data')
|
||||
@mock.patch('yaml.safe_dump')
|
||||
def test_generate_with_role(self, mock_safe_dump, mock_bed):
|
||||
mock_args = mock.Mock()
|
||||
mock_args.id = 'foo'
|
||||
mock_args.env = ['foo.yaml']
|
||||
env = (test_env + test_env_param_defaults)
|
||||
mock_bed.return_value = yaml.safe_load(env)
|
||||
mock_bed.return_value['parameter_defaults']['role'] = 'compute'
|
||||
env_output = dict(test_env_output)
|
||||
env_output['overcloud_internal_net'] = 'internalapi-foo'
|
||||
env_output['baremetal_prefix'] = 'baremetal-foo-compute'
|
||||
path = deploy._generate_id_env(mock_args)
|
||||
self.assertEqual(['foo.yaml', 'env-foo.yaml'], path)
|
||||
dumped_dict = mock_safe_dump.call_args_list[0][0][0]
|
||||
for k, v in env_output.items():
|
||||
if k in mock_bed.return_value['parameters']:
|
||||
self.assertEqual(v, dumped_dict['parameters'][k])
|
||||
self.assertEqual(v, dumped_dict['parameter_defaults'][k])
|
||||
|
||||
# _process_role test data
|
||||
role_base_data = {
|
||||
'parameter_defaults': {
|
||||
|
|
Loading…
Reference in New Issue