summaryrefslogtreecommitdiff
path: root/heatclient
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-02-21 07:52:00 +0000
committerGerrit Code Review <review@openstack.org>2020-02-21 07:52:00 +0000
commit866e90374ec08727161a5e00b409804a7c2e945f (patch)
tree26d59bb360516dc3c48519a98f876edf35b0de26 /heatclient
parent207968f353f435d315ff25194e35251bb260df35 (diff)
parent033511c291c811f9368aaccdc81de3c9c93c9ae2 (diff)
downloadpython-heatclient-866e90374ec08727161a5e00b409804a7c2e945f.tar.gz
Merge "Allow to set poll interval to OSC stack create"
Diffstat (limited to 'heatclient')
-rw-r--r--heatclient/osc/v1/stack.py11
-rw-r--r--heatclient/tests/unit/osc/v1/test_stack.py18
2 files changed, 28 insertions, 1 deletions
diff --git a/heatclient/osc/v1/stack.py b/heatclient/osc/v1/stack.py
index bdf7f5f..761b323 100644
--- a/heatclient/osc/v1/stack.py
+++ b/heatclient/osc/v1/stack.py
@@ -91,6 +91,14 @@ class CreateStack(command.ShowOne):
help=_('Wait until stack goes to CREATE_COMPLETE or CREATE_FAILED')
)
parser.add_argument(
+ '--poll',
+ metavar='SECONDS',
+ type=int,
+ default=5,
+ help=_('Poll interval in seconds for use with --wait, '
+ 'defaults to 5.')
+ )
+ parser.add_argument(
'--tags',
metavar='<tag1,tag2...>',
help=_('A list of tags to associate with the stack')
@@ -184,7 +192,8 @@ class CreateStack(command.ShowOne):
stack = client.stacks.create(**fields)['stack']
if parsed_args.wait:
stack_status, msg = event_utils.poll_for_events(
- client, parsed_args.name, action='CREATE')
+ client, parsed_args.name, action='CREATE',
+ poll_period=parsed_args.poll)
if stack_status == 'CREATE_FAILED':
raise exc.CommandError(msg)
diff --git a/heatclient/tests/unit/osc/v1/test_stack.py b/heatclient/tests/unit/osc/v1/test_stack.py
index 146c1bc..d6a51b0 100644
--- a/heatclient/tests/unit/osc/v1/test_stack.py
+++ b/heatclient/tests/unit/osc/v1/test_stack.py
@@ -148,6 +148,24 @@ class TestStackCreate(TestStack):
self.cmd.take_action(parsed_args)
+ mock_poll.assert_called_once_with(mock.ANY, 'my_stack',
+ action='CREATE', poll_period=5)
+ self.stack_client.create.assert_called_with(**self.defaults)
+ self.stack_client.get.assert_called_with(**{'stack_id': '1234',
+ 'resolve_outputs': False})
+
+ @mock.patch('heatclient.common.event_utils.poll_for_events',
+ return_value=('CREATE_COMPLETE',
+ 'Stack my_stack CREATE_COMPLETE'))
+ def test_stack_create_wait_with_poll(self, mock_poll):
+ arglist = ['my_stack', '-t', self.template_path, '--wait',
+ '--poll', '10']
+ parsed_args = self.check_parser(self.cmd, arglist, [])
+
+ self.cmd.take_action(parsed_args)
+
+ mock_poll.assert_called_once_with(mock.ANY, 'my_stack',
+ action='CREATE', poll_period=10)
self.stack_client.create.assert_called_with(**self.defaults)
self.stack_client.get.assert_called_with(**{'stack_id': '1234',
'resolve_outputs': False})