From 7494548b739af53cf95f22c3135e5aec4eb49c50 Mon Sep 17 00:00:00 2001 From: Rabi Mishra Date: Fri, 18 Oct 2019 11:30:19 +0530 Subject: [PATCH] Reset *RemovalPoliciesMode for node delete 'update' *RemovalPoliciesMode during 'node delete' can result in undesired behaviour as we flush the blacklist history and use the freshly constructed blacklist and decrease the node count. Change-Id: Iebd0089b6ab35c84e4f20e83f1990c1c5568017f Closes-Bug: #1848651 (cherry picked from commit 8f5c494150660bacd6a9560c8ce343a0af8e3427) --- tripleo_common/actions/scale.py | 5 +++++ tripleo_common/tests/actions/test_scale.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tripleo_common/actions/scale.py b/tripleo_common/actions/scale.py index f11ada314..476f966a6 100644 --- a/tripleo_common/actions/scale.py +++ b/tripleo_common/actions/scale.py @@ -113,6 +113,11 @@ class ScaleDownAction(templates.ProcessTemplatesAction): 'resource_list': [r.resource_name for r in role_resources] }] + # force reset the removal_policies_mode to 'append' + # as 'update' can lead to deletion of unintended nodes. + removal_mode = "{0}RemovalPoliciesMode".format(role) + stack_params[removal_mode] = 'append' + return stack_params def run(self, context): diff --git a/tripleo_common/tests/actions/test_scale.py b/tripleo_common/tests/actions/test_scale.py index 7face5b90..a3f6d9064 100644 --- a/tripleo_common/tests/actions/test_scale.py +++ b/tripleo_common/tests/actions/test_scale.py @@ -139,7 +139,8 @@ class ScaleDownActionTest(base.TestCase): template={'heat_template_version': '2016-04-30'} ) - clear_list = list(['ComputeCount', 'ComputeRemovalPolicies']) + clear_list = list(['ComputeCount', 'ComputeRemovalPolicies', + 'ComputeRemovalPoliciesMode']) _, kwargs = heatclient.stacks.update.call_args self.assertEqual(set(kwargs['clear_parameters']), set(clear_list)) self.assertEqual(kwargs['environment'], env)