From 3b0feab66b4205f9c769a37df6dbf2a74ad8db21 Mon Sep 17 00:00:00 2001 From: Jaganathan Palanisamy Date: Mon, 31 Jul 2017 06:08:07 -0400 Subject: [PATCH] Derive params network config stack exists fix This change is to fix stack already exists issue in the environment where overcloud with same name is already deployed. get_network_config action is failing and error message is stack already exists if overcloud is deployed already. Change-Id: If917ae93691540b525d9e1eddcf0c0885ccc5f5e Closes-Bug: #1714471 (cherry picked from commit 3ea3cbd6d3695f8644b796b4b5020196990e94fa) --- tripleo_common/actions/parameters.py | 7 +++++-- tripleo_common/tests/actions/test_parameters.py | 8 ++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tripleo_common/actions/parameters.py b/tripleo_common/actions/parameters.py index 3e5f19e8b..4cf9b3970 100644 --- a/tripleo_common/actions/parameters.py +++ b/tripleo_common/actions/parameters.py @@ -556,15 +556,18 @@ class GetNetworkConfigAction(templates.ProcessTemplatesAction): if isinstance(processed_data, actions.Result): return processed_data + # stacks.preview method raises validation message if stack is + # already deployed. here renaming container to get preview data. + container_temp = self.container + "-TEMP" fields = { 'template': processed_data['template'], 'files': processed_data['files'], 'environment': processed_data['environment'], - 'stack_name': self.container, + 'stack_name': container_temp, } orc = self.get_orchestration_client(context) preview_data = orc.stacks.preview(**fields) - result = self.get_network_config(preview_data, self.container, + result = self.get_network_config(preview_data, container_temp, self.role_name) return result diff --git a/tripleo_common/tests/actions/test_parameters.py b/tripleo_common/tests/actions/test_parameters.py index 789d7e841..c1837d178 100644 --- a/tripleo_common/tests/actions/test_parameters.py +++ b/tripleo_common/tests/actions/test_parameters.py @@ -1052,7 +1052,7 @@ class GetNetworkConfigActionTest(base.TestCase): mock_heat = mock.MagicMock() mock_heat.stacks.preview.return_value = mock.Mock(resources=[{ - "resource_identity": {"stack_name": "overcloud-Compute-0"}, + "resource_identity": {"stack_name": "overcloud-TEMP-Compute-0"}, "resource_name": "OsNetConfigImpl", "properties": {"config": "echo \'{\"network_config\": {}}\'"} }]) @@ -1070,7 +1070,7 @@ class GetNetworkConfigActionTest(base.TestCase): environment={}, files={}, template={'heat_template_version': '2016-04-30'}, - stack_name='overcloud', + stack_name='overcloud-TEMP', ) @mock.patch('tripleo_common.actions.base.TripleOAction.' @@ -1113,7 +1113,7 @@ class GetNetworkConfigActionTest(base.TestCase): mock_heat = mock.MagicMock() mock_heat.stacks.preview.return_value = mock.Mock(resources=[{ - "resource_identity": {"stack_name": "overcloud-Compute-0"}, + "resource_identity": {"stack_name": "overcloud-TEMP-Compute-0"}, "resource_name": "OsNetConfigImpl", "properties": {"config": ""} }]) @@ -1130,5 +1130,5 @@ class GetNetworkConfigActionTest(base.TestCase): environment={}, files={}, template={'heat_template_version': '2016-04-30'}, - stack_name='overcloud', + stack_name='overcloud-TEMP', )