From 19148898aabc58afb7c93957676c6cf408d0f962 Mon Sep 17 00:00:00 2001 From: Rabi Mishra Date: Mon, 24 Jun 2019 20:49:28 +0530 Subject: [PATCH] Fix regression in validation action Regression with https://review.opendev.org/#/c/656379/ self.stack is dict rather than a python object from action heat.stacks_get and is an input to this action. Change-Id: I92c9d0bb5ddac5b8a887a3acf3fc3314aab5867b Closes-Bug: #1834054 Related-Bug: #1826925 --- tripleo_common/actions/validations.py | 2 +- tripleo_common/tests/actions/test_validations.py | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/tripleo_common/actions/validations.py b/tripleo_common/actions/validations.py index 908c44f27..b19e1c206 100644 --- a/tripleo_common/actions/validations.py +++ b/tripleo_common/actions/validations.py @@ -429,7 +429,7 @@ class CheckNodesCountAction(base.TripleOAction): requested_count = 0 for param, default in self.default_role_counts.items(): - if self.stack and self.stack.status != 'FAILED': + if self.stack and 'FAILED' not in self.stack['stack_status']: try: current = int(self.stack['parameters'][param]) except KeyError: diff --git a/tripleo_common/tests/actions/test_validations.py b/tripleo_common/tests/actions/test_validations.py index 46cdceb80..d587040af 100644 --- a/tripleo_common/tests/actions/test_validations.py +++ b/tripleo_common/tests/actions/test_validations.py @@ -816,9 +816,8 @@ class TestCheckNodesCountAction(base.TestCase): def test_check_nodes_count_scale_enough_nodes(self): action_args = self.action_args.copy() action_args['parameters'] = {'ControllerCount': 2} - params = self.defaults.copy() - self.stack = mock.Mock(status='COMPLETE', - parameters=params) + action_args['stack'] = {'parameters': self.defaults.copy(), + 'stack_status': 'CREATE_COMPLETE'} action = validations.CheckNodesCountAction(**action_args) result = action.run(self.ctx) @@ -839,9 +838,8 @@ class TestCheckNodesCountAction(base.TestCase): def test_check_nodes_count_scale_too_much(self): action_args = self.action_args.copy() action_args['parameters'] = {'ControllerCount': 3} - params = self.defaults.copy() - self.stack = mock.Mock(status='COMPLETE', - parameters=params) + action_args['stack'] = {'parameters': self.defaults.copy(), + 'stack_status': 'CREATE_COMPLETE'} action = validations.CheckNodesCountAction(**action_args) result = action.run(self.ctx) @@ -866,8 +864,8 @@ class TestCheckNodesCountAction(base.TestCase): action_args['parameters'] = {'ControllerCount': 3} params = self.defaults.copy() del params[missing_param] - self.stack = mock.Mock(status='COMPLETE', - parameters=params) + action_args['stack'] = {'parameters': self.defaults.copy(), + 'stack_status': 'CREATE_COMPLETE'} action = validations.CheckNodesCountAction(**action_args) result = action.run(self.ctx)