Enable abandon option to nested resource

Resources use abandon_in_progress option for abandoning in
prepare_abandon method. When abandon_in_progress, resource's
deletion policy is "Retain" and resource will not delete. Nested
resource prepare_abandon missed enabling that option, so all nested
stacks delete.

Change-Id: I819566e4e1ca81193c745dcdd89217f31db41b07
Closes-bug: #1509912
This commit is contained in:
Peter Razumovsky 2015-10-28 16:37:06 +03:00
parent e2b5edef30
commit 103a09bc1c
2 changed files with 9 additions and 0 deletions

View File

@ -500,6 +500,7 @@ class StackResource(resource.Resource):
return self._check_status_complete(resource.Resource.CHECK)
def prepare_abandon(self):
self.abandon_in_progress = True
nested_stack = self.nested()
if nested_stack:
return self.nested().prepare_abandon()

View File

@ -199,6 +199,14 @@ class StackResourceTest(StackResourceBaseTest):
ret = self.parent_resource.prepare_abandon()
self.assertEqual({}, ret)
def test_abandon_nested_not_deleted(self):
delete_nested = self.patchobject(self.parent_resource, 'delete_nested')
self.parent_stack.prepare_abandon()
self.parent_stack.delete(abandon=True)
self.assertEqual(0, delete_nested.call_count)
@testtools.skipIf(six.PY3, "needs a separate change")
def test_implementation_signature(self):
self.parent_resource.child_template = mock.Mock(