def test_delete_raise_exception_keypair_inuse(self): db.process_get_all(IsA(context.RequestContext), GID, filters={"keypair_id": KEYPAIR_ID})\ .AndRaise(exception.keypairInUse(keypair_id=KEYPAIR_ID)) self.mox.ReplayAll() url = "/v1/groups/" + GID + "/keypairs/" + KEYPAIR_ID req = get_request(url, "DELETE") res = req.get_response(self.app) self.assertEqual(res.status_code, 409)
def delete(self, req, gid, keypair_id): context = req.environ['rack.context'] try: self._uuid_check(gid=gid, keypair_id=keypair_id) filters = {"keypair_id": keypair_id} processes = db.process_get_all(context, gid, filters=filters) if processes: raise exception.keypairInUse(keypair_id=keypair_id) keypair = db.keypair_get_by_keypair_id(context, gid, keypair_id) self.manager.keypair_delete(context, keypair["nova_keypair_id"]) db.keypair_delete(context, gid, keypair_id) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) except exception.keypairInUse as e: raise webob.exc.HTTPConflict(explanation=e.format_message())
def delete(self, req, gid, keypair_id): context = req.environ["rack.context"] try: self._uuid_check(gid=gid, keypair_id=keypair_id) filters = {"keypair_id": keypair_id} processes = db.process_get_all(context, gid, filters=filters) if processes: raise exception.keypairInUse(keypair_id=keypair_id) keypair = db.keypair_delete(context, gid, keypair_id) host = self.scheduler_rpcapi.select_destinations(context, request_spec={}, filter_properties={}) self.operator_rpcapi.keypair_delete(context, host["host"], nova_keypair_id=keypair["nova_keypair_id"]) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) except exception.keypairInUse as e: raise webob.exc.HTTPConflict(explanation=e.format_message()) except Exception as e: LOG.warn(e) raise exception.KeypairDeleteFailed()