diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-03-02 07:36:14 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-03-02 07:36:14 +0000 |
commit | 8173b256565c618d48216acf07ac3317a7caf3ab (patch) | |
tree | 7b8867f73602f7edc331639861683b4229eec5fe /heatclient/osc | |
parent | f2ee326466eb1a144afac51912c63e7be8af1989 (diff) | |
parent | a3c32990a81b202ebac7408a9da08dcf03c8306c (diff) | |
download | python-heatclient-8173b256565c618d48216acf07ac3317a7caf3ab.tar.gz |
Merge "Use poll_for_events for "openstack stack delete""
Diffstat (limited to 'heatclient/osc')
-rw-r--r-- | heatclient/osc/v1/stack.py | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/heatclient/osc/v1/stack.py b/heatclient/osc/v1/stack.py index 8a51217..c256bb1 100644 --- a/heatclient/osc/v1/stack.py +++ b/heatclient/osc/v1/stack.py @@ -631,25 +631,39 @@ class DeleteStack(command.Command): failure_count = 0 stacks_waiting = [] for sid in parsed_args.stack: + marker = None + if parsed_args.wait: + try: + # find the last event to use as the marker + events = event_utils.get_events(heat_client, + stack_id=sid, + event_args={ + 'sort_dir': 'desc', + 'limit': 1}) + if events: + marker = events[0].id + except heat_exc.CommandError as ex: + failure_count += 1 + print(ex) + continue + try: heat_client.stacks.delete(sid) - stacks_waiting.append(sid) + stacks_waiting.append((sid, marker)) except heat_exc.HTTPNotFound: failure_count += 1 print(_('Stack not found: %s') % sid) if parsed_args.wait: - for sid in stacks_waiting: - def status_f(id): - return heat_client.stacks.get(id).to_dict() - - # TODO(jonesbr): switch to use openstack client wait_for_delete - # when version 2.1.0 is adopted. - if not heat_utils.wait_for_delete(status_f, - sid, - status_field='stack_status'): + for sid, marker in stacks_waiting: + try: + stack_status, msg = event_utils.poll_for_events( + heat_client, sid, action='DELETE', marker=marker) + except heat_exc.CommandError: + continue + if stack_status == 'DELETE_FAILED': failure_count += 1 - print(_('Stack failed to delete: %s') % sid) + print(msg) if failure_count: msg = (_('Unable to delete %(count)d of the %(total)d stacks.') % |