From 2a39275ec3cbd44cd12b46b90db5d249a762a164 Mon Sep 17 00:00:00 2001 From: Roberto Polli Date: Fri, 15 Sep 2017 15:01:00 +0200 Subject: [PATCH] Support --show-nested in openstack stack update --dry-run Added --show-nested support in `openstack stack update`. The work is based on `heat stack-update` implementation. Closes-Bug: #1720085 Change-Id: I50c8f5ac9ba4cb7e478af03ff4c1f099270ae226 --- heatclient/osc/v1/stack.py | 7 +++++++ heatclient/tests/unit/osc/v1/test_stack.py | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/heatclient/osc/v1/stack.py b/heatclient/osc/v1/stack.py index 7206e71e..d0b97e09 100644 --- a/heatclient/osc/v1/stack.py +++ b/heatclient/osc/v1/stack.py @@ -232,6 +232,10 @@ class UpdateStack(command.ShowOne): help=_('Do not actually perform the stack update, but show what ' 'would be changed') ) + parser.add_argument( + '--show-nested', default=False, action="store_true", + help=_('Show nested stacks when performing --dry-run') + ) parser.add_argument( '--parameter', metavar='', help=_('Parameter values used to create the stack. ' @@ -335,6 +339,9 @@ class UpdateStack(command.ShowOne): fields['disable_rollback'] = rollback == 'disabled' if parsed_args.dry_run: + if parsed_args.show_nested: + fields['show_nested'] = parsed_args.show_nested + changes = client.stacks.preview_update(**fields) fields = ['state', 'resource_name', 'resource_type', diff --git a/heatclient/tests/unit/osc/v1/test_stack.py b/heatclient/tests/unit/osc/v1/test_stack.py index 54fe9be5..159056a7 100644 --- a/heatclient/tests/unit/osc/v1/test_stack.py +++ b/heatclient/tests/unit/osc/v1/test_stack.py @@ -335,6 +335,17 @@ class TestStackUpdate(TestStack): self.stack_client.preview_update.assert_called_with(**self.defaults) self.stack_client.update.assert_not_called() + def test_stack_update_dry_run_show_nested(self): + arglist = ['my_stack', '-t', self.template_path, '--dry-run', + '--show-nested'] + parsed_args = self.check_parser(self.cmd, arglist, []) + + self.cmd.take_action(parsed_args) + + self.stack_client.preview_update.assert_called_with( + show_nested=True, **self.defaults) + self.stack_client.update.assert_not_called() + @mock.patch('heatclient.common.event_utils.poll_for_events', return_value=('UPDATE_COMPLETE', 'Stack my_stack UPDATE_COMPLETE'))