scheduler_hints={'group':
'5b674f73-c8cf-40ef-9965-3b6fe4b304b1'})
- def test_destroy_instance_disassociates_security_groups(self):
- # Make sure destroying disassociates security groups.
- group = self._create_group()
-
- (ref, resv_id) = self.compute_api.create(
- self.context,
- instance_type=flavors.get_default_flavor(),
- image_href=uuids.image_href_id,
- security_groups=['testgroup'])
-
- db.instance_destroy(self.context, ref[0]['uuid'])
- group = db.security_group_get(self.context, group['id'],
- columns_to_join=['instances'])
- self.assertEqual(0, len(group['instances']))
-
- def test_destroy_security_group_disassociates_instances(self):
- # Make sure destroying security groups disassociates instances.
- group = self._create_group()
-
- (ref, resv_id) = self.compute_api.create(
- self.context,
- instance_type=flavors.get_default_flavor(),
- image_href=uuids.image_href_id,
- security_groups=['testgroup'])
-
- db.security_group_destroy(self.context, group['id'])
- admin_deleted_context = context.get_admin_context(
- read_deleted="only")
- group = db.security_group_get(admin_deleted_context, group['id'],
- columns_to_join=['instances'])
- self.assertEqual(0, len(group['instances']))
-
def _test_rebuild(self, vm_state):
instance = self._create_fake_instance_obj()
instance_uuid = instance['uuid']
columns_to_join=['instances',
'rules']), security_group2)
+ def test_security_group_destroy_with_instance(self):
+ security_group1 = self._create_security_group({})
+
+ instance = db.instance_create(self.ctxt, {})
+ db.instance_add_security_group(self.ctxt, instance.uuid,
+ security_group1.id)
+
+ self.assertEqual(
+ 1,
+ len(db.security_group_get_by_instance(self.ctxt, instance.uuid)))
+
+ db.security_group_destroy(self.ctxt, security_group1['id'])
+
+ self.assertEqual(
+ 0,
+ len(db.security_group_get_by_instance(self.ctxt, instance.uuid)))
+
def test_security_group_get(self):
security_group1 = self._create_security_group({})
self._create_security_group({'name': 'fake_sec_group2'})
self.assertTrue(instances[0].obj_attr_is_set('system_metadata'))
self.assertEqual({'foo': 'bar'}, instances[0].system_metadata)
+ def test_get_by_security_group_after_destroy(self):
+ db_sg = db.security_group_create(
+ self.context,
+ {'name': 'foo',
+ 'description': 'test group',
+ 'user_id': self.context.user_id,
+ 'project_id': self.context.project_id})
+ self.assertFalse(db.security_group_in_use(self.context, db_sg.id))
+ inst = objects.Instance(
+ context=self.context,
+ user_id=self.context.user_id,
+ project_id=self.context.project_id)
+ inst.create()
+
+ db.instance_add_security_group(self.context,
+ inst.uuid,
+ db_sg.id)
+
+ self.assertTrue(db.security_group_in_use(self.context, db_sg.id))
+ inst.destroy()
+ self.assertFalse(db.security_group_in_use(self.context, db_sg.id))
+
def test_get_by_grantee_security_group_ids(self):
fake_instances = [
fake_instance.fake_db_instance(id=1),