Merge "Make RPC call to abandon nested stack"

This commit is contained in:
Jenkins 2016-04-27 20:47:04 +00:00 committed by Gerrit Code Review
commit 525115cb27
2 changed files with 18 additions and 1 deletions

View File

@ -54,6 +54,7 @@ class StackResource(resource.Resource):
def __init__(self, name, json_snippet, stack):
super(StackResource, self).__init__(name, json_snippet, stack)
self.nested_abandon_in_progress = False
self._nested = None
self.resource_info = None
@ -455,7 +456,10 @@ class StackResource(resource.Resource):
stack_identity = dict(stack.identifier())
try:
self.rpc_client().delete_stack(self.context, stack_identity)
if self.nested_abandon_in_progress:
self.rpc_client().abandon_stack(self.context, stack_identity)
else:
self.rpc_client().delete_stack(self.context, stack_identity)
except Exception as ex:
self.rpc_client().ignore_error_named(ex, 'NotFound')
@ -509,6 +513,7 @@ class StackResource(resource.Resource):
return self._check_status_complete(self.CHECK)
def prepare_abandon(self):
self.nested_abandon_in_progress = True
nested_stack = self.nested()
if nested_stack:
return self.nested().prepare_abandon()

View File

@ -200,6 +200,18 @@ class StackResourceTest(StackResourceBaseTest):
ret = self.parent_resource.prepare_abandon()
self.assertEqual({}, ret)
def test_abandon_nested_sends_rpc_abandon(self):
rpcc = mock.Mock()
self.parent_resource.rpc_client = rpcc
self.parent_resource.nested = mock.MagicMock()
self.parent_resource.prepare_abandon()
self.parent_resource.delete_nested()
rpcc.return_value.abandon_stack.assert_called_once_with(
self.parent_resource.context, mock.ANY)
rpcc.return_value.delete_stack.assert_not_called()
def test_propagated_files(self):
"""Test passing of the files map in the top level to the child.