Merge "Cleanup snapshot records when stack deletion"

This commit is contained in:
Jenkins 2015-03-30 10:25:27 +00:00 committed by Gerrit Code Review
commit 3c78c0303e
2 changed files with 25 additions and 0 deletions

View File

@ -1078,6 +1078,7 @@ class Stack(collections.Mapping):
self.id)
for snapshot in snapshots:
self.delete_snapshot(snapshot)
snapshot_object.Snapshot.delete(self.context, snapshot.id)
if not backup:
try:

View File

@ -25,6 +25,7 @@ from heat.engine import resource
from heat.engine import scheduler
from heat.engine import stack
from heat.engine import template
from heat.objects import snapshot as snapshot_object
from heat.objects import stack as stack_object
from heat.objects import user_creds as ucreds_object
from heat.tests import common
@ -60,6 +61,29 @@ class StackTest(common.HeatTestCase):
self.assertEqual((stack.Stack.DELETE, stack.Stack.COMPLETE),
self.stack.state)
def test_delete_with_snapshot(self):
self.stack = stack.Stack(self.ctx, 'delete_test', self.tmpl)
stack_id = self.stack.store()
snapshot_fake = {
'tenant': self.ctx.tenant_id,
'name': 'Snapshot',
'stack_id': stack_id,
'status': 'COMPLETE',
'data': self.stack.prepare_abandon()
}
snapshot_object.Snapshot.create(self.ctx, snapshot_fake)
self.assertIsNotNone(snapshot_object.Snapshot.get_all(
self.ctx, stack_id))
self.stack.delete()
db_s = stack_object.Stack.get_by_id(self.ctx, stack_id)
self.assertIsNone(db_s)
self.assertEqual((stack.Stack.DELETE, stack.Stack.COMPLETE),
self.stack.state)
self.assertEqual([], snapshot_object.Snapshot.get_all(
self.ctx, stack_id))
def test_delete_user_creds(self):
self.stack = stack.Stack(self.ctx, 'delete_test', self.tmpl)
stack_id = self.stack.store()