summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Baker <sbaker@redhat.com>2016-02-15 13:11:25 +1300
committerSteve Baker <sbaker@redhat.com>2016-02-26 08:58:55 +1300
commit7f6b769aeb7ee1ff081b61b18b22fd920a1f6c35 (patch)
treedb43b995748e1568363fdebc0c5bb963c4fbe24c
parent0fd58aae36d76ebffffeafde65ca115f079ba305 (diff)
downloadpython-heatclient-7f6b769aeb7ee1ff081b61b18b22fd920a1f6c35.tar.gz
Use poll_for_events for "openstack stack adopt"
Change-Id: I2fe9fd46846393dca7958cf0793ecb1d93e5b841 Blueprint: heat-support-python-openstackclient
-rw-r--r--heatclient/osc/v1/stack.py8
-rw-r--r--heatclient/tests/unit/osc/v1/test_stack.py14
2 files changed, 13 insertions, 9 deletions
diff --git a/heatclient/osc/v1/stack.py b/heatclient/osc/v1/stack.py
index 98ce4e0..44dbcc7 100644
--- a/heatclient/osc/v1/stack.py
+++ b/heatclient/osc/v1/stack.py
@@ -732,11 +732,9 @@ class AdoptStack(show.ShowOne):
stack = client.stacks.create(**fields)['stack']
if parsed_args.wait:
- if not utils.wait_for_status(client.stacks.get, parsed_args.name,
- status_field='stack_status',
- success_status='create_complete',
- error_status=['create_failed']):
- msg = _('Stack %s failed to create.') % parsed_args.name
+ stack_status, msg = event_utils.poll_for_events(
+ client, parsed_args.name, action='ADOPT')
+ if stack_status == 'ADOPT_FAILED':
raise exc.CommandError(msg)
return _show_stack(client, stack['id'], format='table', short=True)
diff --git a/heatclient/tests/unit/osc/v1/test_stack.py b/heatclient/tests/unit/osc/v1/test_stack.py
index 971395d..aab7686 100644
--- a/heatclient/tests/unit/osc/v1/test_stack.py
+++ b/heatclient/tests/unit/osc/v1/test_stack.py
@@ -684,10 +684,13 @@ class TestStackAdopt(TestStack):
self.stack_client.create.assert_called_with(**kwargs)
- def test_stack_adopt_wait(self):
+ @mock.patch('heatclient.common.event_utils.poll_for_events',
+ return_value=('ADOPT_COMPLETE',
+ 'Stack my_stack ADOPT_COMPLETE'))
+ def test_stack_adopt_wait(self, mock_poll):
arglist = ['my_stack', '--adopt-file', self.adopt_file, '--wait']
self.stack_client.get = mock.MagicMock(return_value=(
- stacks.Stack(None, {'stack_status': 'CREATE_COMPLETE'})))
+ stacks.Stack(None, {'stack_status': 'ADOPT_COMPLETE'})))
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
@@ -695,10 +698,13 @@ class TestStackAdopt(TestStack):
self.stack_client.create.assert_called_with(**self.defaults)
self.stack_client.get.assert_called_with(**{'stack_id': '1234'})
- def test_stack_adopt_wait_fail(self):
+ @mock.patch('heatclient.common.event_utils.poll_for_events',
+ return_value=('ADOPT_FAILED',
+ 'Stack my_stack ADOPT_FAILED'))
+ def test_stack_adopt_wait_fail(self, mock_poll):
arglist = ['my_stack', '--adopt-file', self.adopt_file, '--wait']
self.stack_client.get = mock.MagicMock(return_value=(
- stacks.Stack(None, {'stack_status': 'CREATE_FAILED'})))
+ stacks.Stack(None, {'stack_status': 'ADOPT_FAILED'})))
parsed_args = self.check_parser(self.cmd, arglist, [])
self.assertRaises(exc.CommandError, self.cmd.take_action, parsed_args)