diff --git a/nova/db/api.py b/nova/db/api.py index f9134075d8a9..4459771b2ef3 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -929,11 +929,6 @@ def instance_group_update(context, group_uuid, values): return IMPL.instance_group_update(context, group_uuid, values) -def instance_group_delete(context, group_uuid): - """Delete an group.""" - return IMPL.instance_group_delete(context, group_uuid) - - def instance_group_get_all(context): """Get all groups.""" return IMPL.instance_group_get_all(context) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index f7e01ec2c459..76a425132ae6 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -1813,9 +1813,6 @@ 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() model_query(context, models.BlockDeviceMapping).\ filter_by(instance_uuid=instance_uuid).\ soft_delete() @@ -5780,25 +5777,6 @@ def instance_group_update(context, group_uuid, values): values['members'] = members -@pick_context_manager_writer -def instance_group_delete(context, group_uuid): - """Delete a group.""" - group_id = _instance_group_id(context, group_uuid) - - count = _instance_group_get_query(context, - models.InstanceGroup, - models.InstanceGroup.uuid, - group_uuid).soft_delete() - if count == 0: - raise exception.InstanceGroupNotFound(group_uuid=group_uuid) - - # Delete policies, metadata and members - instance_models = [models.InstanceGroupPolicy, - models.InstanceGroupMember] - for model in instance_models: - model_query(context, model).filter_by(group_id=group_id).soft_delete() - - @pick_context_manager_reader def instance_group_get_all(context): """Get all groups.""" diff --git a/nova/tests/unit/db/test_db_api.py b/nova/tests/unit/db/test_db_api.py index 85e404d69082..60bd0a82bbcd 100644 --- a/nova/tests/unit/db/test_db_api.py +++ b/nova/tests/unit/db/test_db_api.py @@ -2485,23 +2485,6 @@ 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 = uuidsentinel.uuid1 - 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_delete_migrations_on_instance_destroy(self): ctxt = context.get_admin_context() uuid = uuidsentinel.uuid1 @@ -8593,26 +8576,12 @@ class InstanceGroupDBApiTestCase(test.TestCase, ModelsObjectComparatorMixin): 'created_at', 'project_id', 'user_id'] self._assertEqualObjects(result2, values, ignored_keys) - def test_instance_group_delete(self): - values = self._get_default_values() - result = self._create_instance_group(self.context, values) - db.instance_group_delete(self.context, result['uuid']) - self.assertRaises(exception.InstanceGroupNotFound, - db.instance_group_delete, self.context, - result['uuid']) - def test_instance_group_get_nonexistent(self): self.assertRaises(exception.InstanceGroupNotFound, db.instance_group_get, self.context, 'nonexistent') - def test_instance_group_delete_nonexistent(self): - self.assertRaises(exception.InstanceGroupNotFound, - db.instance_group_delete, - self.context, - 'nonexistent') - def test_instance_group_get_all(self): groups = db.instance_group_get_all(self.context) self.assertEqual(0, len(groups)) @@ -8701,13 +8670,6 @@ class InstanceGroupDBApiTestCase(test.TestCase, ModelsObjectComparatorMixin): db.instance_group_get, self.new_context, result['uuid']) - def test_instance_group_delete_by_other_project_user(self): - values = self._get_default_values() - result = self._create_instance_group(self.context, values) - self.assertRaises(exception.InstanceGroupNotFound, - db.instance_group_delete, - self.new_context, result['uuid']) - def test_instance_group_get_by_admin(self): values = self._get_default_values() result = self._create_instance_group(self.context, values) @@ -8717,12 +8679,6 @@ class InstanceGroupDBApiTestCase(test.TestCase, ModelsObjectComparatorMixin): self.assertEqual(values['user_id'], group.user_id) self.assertEqual(values['project_id'], group.project_id) - def test_instance_group_delete_by_admin(self): - values = self._get_default_values() - result = self._create_instance_group(self.context, values) - db.instance_group_delete(context.get_admin_context(), - result['uuid']) - class InstanceGroupMembersDBApiTestCase(InstanceGroupDBApiTestCase): def test_instance_group_members_on_create(self): diff --git a/nova/tests/unit/db/test_sqlalchemy_migration.py b/nova/tests/unit/db/test_sqlalchemy_migration.py index 3055c1468d73..82b7bdfd81cf 100644 --- a/nova/tests/unit/db/test_sqlalchemy_migration.py +++ b/nova/tests/unit/db/test_sqlalchemy_migration.py @@ -317,6 +317,7 @@ class TestOcataCheck(test.TestCase): 'project_id': 'bar', 'uuid': uuidsentinel.ig, 'name': 'baz', + 'deleted': 0 } def test_upgrade_clean(self): @@ -345,8 +346,10 @@ class TestOcataCheck(test.TestCase): self.migration.upgrade, self.engine) def test_upgrade_with_deleted_instance_groups(self): - group = db_api.instance_group_create(self.context, self.ig_values) - db_api.instance_group_delete(self.context, group['uuid']) + igs = db_utils.get_table(self.engine, 'instance_groups') + group_id = igs.insert().execute(self.ig_values).inserted_primary_key[0] + igs.update().where(igs.c.id == group_id).values( + deleted=group_id).execute() self.migration.upgrade(self.engine)