Merge "Fix deleting stacks by id when waiting for result"
This commit is contained in:
@@ -60,7 +60,8 @@ def poll_for_events(
|
|||||||
msg_template = "\n Stack %(name)s %(status)s \n"
|
msg_template = "\n Stack %(name)s %(status)s \n"
|
||||||
|
|
||||||
def is_stack_event(event):
|
def is_stack_event(event):
|
||||||
if event.get('resource_name', '') != stack_name:
|
if (event.get('resource_name', '') != stack_name
|
||||||
|
and event.get('physical_resource_id', '') != stack_name):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
phys_id = event.get('physical_resource_id', '')
|
phys_id = event.get('physical_resource_id', '')
|
||||||
|
@@ -183,9 +183,66 @@ class TestStack(base.TestCase):
|
|||||||
self.cloud.delete_stack(self.stack_id)
|
self.cloud.delete_stack(self.stack_id)
|
||||||
self.assert_calls()
|
self.assert_calls()
|
||||||
|
|
||||||
def test_delete_stack_wait(self):
|
def test_delete_stack_by_name_wait(self):
|
||||||
marker_event = fakes.make_fake_stack_event(
|
marker_event = fakes.make_fake_stack_event(
|
||||||
self.stack_id, self.stack_name, status='CREATE_COMPLETE')
|
self.stack_id, self.stack_name, status='CREATE_COMPLETE',
|
||||||
|
resource_name='name')
|
||||||
|
marker_qs = 'marker={e_id}&sort_dir=asc'.format(
|
||||||
|
e_id=marker_event['id'])
|
||||||
|
resolve = 'resolve_outputs=False'
|
||||||
|
self.register_uris([
|
||||||
|
dict(method='GET',
|
||||||
|
uri='{endpoint}/stacks/{name}?{resolve}'.format(
|
||||||
|
endpoint=fakes.ORCHESTRATION_ENDPOINT,
|
||||||
|
name=self.stack_name,
|
||||||
|
resolve=resolve),
|
||||||
|
status_code=302,
|
||||||
|
headers=dict(
|
||||||
|
location='{endpoint}/stacks/{name}/{id}?{resolve}'.format(
|
||||||
|
endpoint=fakes.ORCHESTRATION_ENDPOINT,
|
||||||
|
id=self.stack_id, name=self.stack_name,
|
||||||
|
resolve=resolve))),
|
||||||
|
dict(method='GET',
|
||||||
|
uri='{endpoint}/stacks/{name}/{id}?{resolve}'.format(
|
||||||
|
endpoint=fakes.ORCHESTRATION_ENDPOINT,
|
||||||
|
id=self.stack_id, name=self.stack_name, resolve=resolve),
|
||||||
|
json={"stack": self.stack}),
|
||||||
|
dict(method='GET',
|
||||||
|
uri='{endpoint}/stacks/{name}/events?{qs}'.format(
|
||||||
|
endpoint=fakes.ORCHESTRATION_ENDPOINT,
|
||||||
|
name=self.stack_name,
|
||||||
|
qs='limit=1&sort_dir=desc'),
|
||||||
|
complete_qs=True,
|
||||||
|
json={"events": [marker_event]}),
|
||||||
|
dict(method='DELETE',
|
||||||
|
uri='{endpoint}/stacks/{id}'.format(
|
||||||
|
endpoint=fakes.ORCHESTRATION_ENDPOINT,
|
||||||
|
id=self.stack_id)),
|
||||||
|
dict(method='GET',
|
||||||
|
uri='{endpoint}/stacks/{name}/events?{qs}'.format(
|
||||||
|
endpoint=fakes.ORCHESTRATION_ENDPOINT,
|
||||||
|
name=self.stack_name,
|
||||||
|
qs=marker_qs),
|
||||||
|
complete_qs=True,
|
||||||
|
json={"events": [
|
||||||
|
fakes.make_fake_stack_event(
|
||||||
|
self.stack_id, self.stack_name,
|
||||||
|
status='DELETE_COMPLETE', resource_name='name'),
|
||||||
|
]}),
|
||||||
|
dict(method='GET',
|
||||||
|
uri='{endpoint}/stacks/{name}?{resolve}'.format(
|
||||||
|
endpoint=fakes.ORCHESTRATION_ENDPOINT,
|
||||||
|
id=self.stack_id, name=self.stack_name, resolve=resolve),
|
||||||
|
status_code=404),
|
||||||
|
])
|
||||||
|
|
||||||
|
self.assertTrue(self.cloud.delete_stack(self.stack_name, wait=True))
|
||||||
|
self.assert_calls()
|
||||||
|
|
||||||
|
def test_delete_stack_by_id_wait(self):
|
||||||
|
marker_event = fakes.make_fake_stack_event(
|
||||||
|
self.stack_id, self.stack_name, status='CREATE_COMPLETE',
|
||||||
|
resource_name='name')
|
||||||
marker_qs = 'marker={e_id}&sort_dir=asc'.format(
|
marker_qs = 'marker={e_id}&sort_dir=asc'.format(
|
||||||
e_id=marker_event['id'])
|
e_id=marker_event['id'])
|
||||||
resolve = 'resolve_outputs=False'
|
resolve = 'resolve_outputs=False'
|
||||||
|
Reference in New Issue
Block a user