def test_group_delete(self): values_before = { "gid": self.gid, "user_id": "user_id", "project_id": "project_id", "display_name": "My_group", "display_description": "This is my group.", "status": "active" } db.group_create(self.user_ctxt, values_before) deleted_group = db.group_delete(self.ctxt, self.gid) self.assertEqual(deleted_group["deleted"], 1) self.assertEqual(deleted_group["status"], "DELETING") self.assertIsNotNone(deleted_group.get("deleted_at"))
def delete(self, req, gid): def _validate(gid): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) try: _validate(gid) context = req.environ['rack.context'] keypairs = db.keypair_get_all(context, gid) if keypairs: raise exception.GroupInUse(gid=gid) securitygroups = db.securitygroup_get_all(context, gid) if securitygroups: raise exception.GroupInUse(gid=gid) networks = db.network_get_all(context, gid) if networks: raise exception.GroupInUse(gid=gid) processes = db.process_get_all(context, gid) if processes: raise exception.GroupInUse(gid=gid) db.group_delete(context, gid) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) except exception.GroupInUse as e: raise webob.exc.HTTPConflict(explanation=e.format_message()) except Exception as e: LOG.warn(e) raise exception.GroupDeleteFailed()