Merge "Soft delete instance group member when delete instance"

This commit is contained in:
Jenkins
2016-04-05 03:31:36 +00:00
committed by Gerrit Code Review
2 changed files with 20 additions and 0 deletions

View File

@@ -2031,6 +2031,9 @@ def instance_destroy(context, instance_uuid, constraint=None):
model_query(context, models.InstanceSystemMetadata).\
filter_by(instance_uuid=instance_uuid).\
soft_delete()
model_query(context, models.InstanceGroupMember).\
filter_by(instance_id=instance_uuid).\
soft_delete()
# NOTE(snikitin): We can't use model_query here, because there is no
# column 'deleted' in 'tags' table.
context.session.query(models.Tag).filter_by(

View File

@@ -2810,6 +2810,23 @@ class InstanceTestCase(test.TestCase, ModelsObjectComparatorMixin):
# Make sure instance faults is deleted as well
self.assertEqual(0, len(faults[uuid]))
def test_delete_instance_group_member_on_instance_destroy(self):
ctxt = context.get_admin_context()
uuid = str(stdlib_uuid.uuid4())
db.instance_create(ctxt, {'uuid': uuid})
values = {'name': 'fake_name', 'user_id': 'fake',
'project_id': 'fake'}
group = db.instance_group_create(ctxt, values,
policies=None, members=[uuid])
self.assertEqual([uuid],
db.instance_group_members_get(ctxt,
group['uuid']))
db.instance_destroy(ctxt, uuid)
self.assertEqual([],
db.instance_group_members_get(ctxt,
group['uuid']))
def test_instance_update_and_get_original(self):
instance = self.create_instance_with_args(vm_state='building')
(old_ref, new_ref) = db.instance_update_and_get_original(self.ctxt,