diff --git a/tripleo_common/actions/heat_capabilities.py b/tripleo_common/actions/heat_capabilities.py index 71b198007..da6be2de4 100644 --- a/tripleo_common/actions/heat_capabilities.py +++ b/tripleo_common/actions/heat_capabilities.py @@ -113,14 +113,17 @@ class UpdateCapabilitiesAction(base.TripleOAction): ) for k, v in self.environments.items(): - if v.get('enabled', False): - mistral_env.variables['environments'].append( - {'path': k} - ) + found = False + if {'path': k} in mistral_env.variables['environments']: + found = True + if v: + if not found: + mistral_env.variables['environments'].append( + {'path': k} + ) else: - # see if it resides in mistral env and if so, remove it - if {'path': k} in mistral_env.variables['environments']: - mistral_env.variables['environments'].pop({'path': k}) + if found: + mistral_env.variables['environments'].remove({'path': k}) env_kwargs = { 'name': mistral_env.name, @@ -137,4 +140,4 @@ class UpdateCapabilitiesAction(base.TripleOAction): None, err_msg ) - return mistral_env + return mistral_env.variables diff --git a/tripleo_common/tests/actions/test_heat_capabilities.py b/tripleo_common/tests/actions/test_heat_capabilities.py index 7a276aa3d..451a61d47 100644 --- a/tripleo_common/tests/actions/test_heat_capabilities.py +++ b/tripleo_common/tests/actions/test_heat_capabilities.py @@ -131,15 +131,18 @@ class UpdateCapabilitiesActionTest(base.TestCase): mocked_env = mock.MagicMock() mocked_env.variables = { 'environments': [ - {'path': '/path/to/overcloud-default-env.yaml'} + {'path': '/path/to/overcloud-default-env.yaml'}, + {'path': '/path/to/ceph-storage-env.yaml'}, ] } mistral.environments.get.return_value = mocked_env get_workflow_client_mock.return_value = mistral - environments = {'/path/to/ceph-storage-env.yaml': {'enabled': False}, - '/path/to/network-isolation.json': {'enabled': False}, - '/path/to/poc-custom-env.yaml': {'enabled': True}} + environments = { + '/path/to/ceph-storage-env.yaml': False, + '/path/to/network-isolation.json': False, + '/path/to/poc-custom-env.yaml': True + } action = heat_capabilities.UpdateCapabilitiesAction( environments, self.container_name) @@ -148,7 +151,7 @@ class UpdateCapabilitiesActionTest(base.TestCase): {'path': '/path/to/overcloud-default-env.yaml'}, {'path': '/path/to/poc-custom-env.yaml'} ]}, - action.run().variables) + action.run()) @mock.patch( 'tripleo_common.actions.base.TripleOAction._get_object_client')