From 58e357908ea1617e7fdf758766b1813b42487803 Mon Sep 17 00:00:00 2001 From: ricolin Date: Mon, 1 May 2017 03:09:55 +0800 Subject: [PATCH] Add `--converge` argument for osc stack update This patch add `--converge` argument for osc stack update. This flag will be used as the trigger for observe on reality. implements bp get-reality-for-resources depends-on: I151b575b714dcc9a5971a1573c126152ecd7ea93 Change-Id: If35e1b9234cab173b3c46601bbd331aceebcbcb3 --- heatclient/osc/v1/stack.py | 8 ++++++++ heatclient/tests/unit/osc/v1/test_stack.py | 10 ++++++++++ ...-converge-in-osc-stack-update-10f256589f628d13.yaml | 8 ++++++++ 3 files changed, 26 insertions(+) create mode 100644 releasenotes/notes/add-converge-in-osc-stack-update-10f256589f628d13.yaml diff --git a/heatclient/osc/v1/stack.py b/heatclient/osc/v1/stack.py index 4a64221a..4490d1ed 100644 --- a/heatclient/osc/v1/stack.py +++ b/heatclient/osc/v1/stack.py @@ -278,6 +278,11 @@ class UpdateStack(command.ShowOne): help=_('Wait until stack goes to UPDATE_COMPLETE or ' 'UPDATE_FAILED') ) + parser.add_argument( + '--converge', + action='store_true', + help=_('Stack update with observe on reality.') + ) return parser @@ -354,6 +359,9 @@ class UpdateStack(command.ShowOne): limit=1) marker = events[0].id if events else None + if parsed_args.converge: + fields['converge'] = True + client.stacks.update(**fields) if parsed_args.wait: diff --git a/heatclient/tests/unit/osc/v1/test_stack.py b/heatclient/tests/unit/osc/v1/test_stack.py index 54fe9be5..2eb3ab9b 100644 --- a/heatclient/tests/unit/osc/v1/test_stack.py +++ b/heatclient/tests/unit/osc/v1/test_stack.py @@ -304,6 +304,16 @@ class TestStackUpdate(TestStack): self.stack_client.update.assert_called_with(**kwargs) + def test_stack_update_converge(self): + arglist = ['my_stack', '-t', self.template_path, '--converge'] + kwargs = copy.deepcopy(self.defaults) + kwargs['converge'] = True + parsed_args = self.check_parser(self.cmd, arglist, []) + + self.cmd.take_action(parsed_args) + + self.stack_client.update.assert_called_with(**kwargs) + def test_stack_update_pre_update(self): arglist = ['my_stack', '-t', self.template_path, '--pre-update', 'a'] kwargs = copy.deepcopy(self.defaults) diff --git a/releasenotes/notes/add-converge-in-osc-stack-update-10f256589f628d13.yaml b/releasenotes/notes/add-converge-in-osc-stack-update-10f256589f628d13.yaml new file mode 100644 index 00000000..70f65d37 --- /dev/null +++ b/releasenotes/notes/add-converge-in-osc-stack-update-10f256589f628d13.yaml @@ -0,0 +1,8 @@ +--- +features: + - Adds '--converge' option for stack update with openstackclient. If + specified, existing resource attributes (which may have diverged) are + compared with the resource properties in the template used for update. + + Usage: + # openstack stack update --converge ... \ No newline at end of file