def delete(self, req, gid, network_id): try: self._uuid_check(gid, network_id) context = req.environ['rack.context'] network = db.network_get_by_network_id(context, gid, network_id) if network["processes"]: raise exception.NetworkInUse(network_id=network_id) self.manager.network_delete(context, network["neutron_network_id"], network["ext_router"]) db.network_delete(context, gid, network_id) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) except exception.NetworkInUse as e: raise webob.exc.HTTPConflict(explanation=e.format_message())
def delete(self, req, gid, network_id): def _validate(gid, network_id): self._check_gid(gid) if not uuidutils.is_uuid_like(network_id): raise exception.NetworkNotFound(network_id=network_id) try: context = req.environ['rack.context'] _validate(gid, network_id) network = db.network_get_by_network_id(context, gid, network_id) if network["processes"]: raise exception.NetworkInUse(network_id=network_id) network = db.network_delete(context, gid, network_id) resourceoperator = self._get_resorceoperator(context) self.resourceoperator_rpcapi.network_delete( context, resourceoperator["host"], neutron_network_id=network["neutron_network_id"], ext_router=network["ext_router"]) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) except exception.NetworkInUse as e: raise webob.exc.HTTPConflict(explanation=e.format_message()) except Exception as e: LOG.exception(e) raise exception.NetworkDeleteFailed()
def test_network_delete(self): create_values = { "network_id": self.network_id, "gid": self.gid, "neutron_network_id": "", "is_admin": True, "subnet": "10.0.0.0/24", "ext_router": "", "user_id": "user", "project_id": "user", "display_name": "net-" + self.network_id, "status": "BUILDING", "deleted": 0 } db.network_create(self.ctxt, create_values) deleted_network = db.network_delete( self.ctxt, self.gid, self.network_id) self.assertEqual(deleted_network["deleted"], 1) network_list = db.network_get_all(self.ctxt, self.gid) self.assertEqual(network_list, [])