def test_delete_exception_not_found(self): self.mox.StubOutWithMock(db, "network_get_by_network_id") db.network_get_by_network_id( IsA(context.RequestContext), GID, NETWORK_ID1)\ .AndRaise(exception.NetworkNotFound(network_id=NETWORK_ID1)) self.mox.ReplayAll() url = '/v1/groups/' + GID + '/networks/' + NETWORK_ID1 req = get_request(url, 'DELETE') res = req.get_response(self.app) self.assertEqual(res.status_code, 404)
def test_delete_exception_inuse(self): self.mox.StubOutWithMock(db, "network_get_by_network_id") network_process_inuse = {"processes": [{"pid": "pid"}]} db.network_get_by_network_id(IsA(context.RequestContext), GID, NETWORK_ID1)\ .AndReturn(network_process_inuse) self.mox.ReplayAll() url = '/v1/groups/' + GID + '/networks/' + NETWORK_ID1 req = get_request(url, 'DELETE') res = req.get_response(self.app) self.assertEqual(res.status_code, 409)
def test_delete_exception_inuse(self): self.mox.StubOutWithMock(db, "network_get_by_network_id") network_process_inuse = {"processes": [{"pid": "pid"}]} db.network_get_by_network_id(mox.IsA(context.RequestContext), GID, NETWORK_ID1)\ .AndReturn(network_process_inuse) self.mox.ReplayAll() url = '/v1/groups/' + GID + '/networks/' + NETWORK_ID1 req = get_request(url, 'DELETE') res = req.get_response(self.app) self.assertEqual(res.status_code, 409)
def test_show_exception_networknotfound(self): self.mox.StubOutWithMock( db, "network_get_by_network_id") db.network_get_by_network_id( mox.IsA(context.RequestContext), GID, NETWORK_ID1)\ .AndRaise(exception.NetworkNotFound(network_id=NETWORK_ID1)) self.mox.ReplayAll() url = '/v1/groups/' + GID + '/networks' req = get_request(url + "/" + NETWORK_ID1, 'GET') res = req.get_response(self.app) self.assertEqual(res.status_code, 404)
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_networks_update(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 } create_network = db.network_create(self.ctxt, create_values) create_network["status"] = "ACTIVE" update_values = { "status": "ACTIVE" } db.network_update(self.ctxt, self.network_id, update_values) network = db.network_get_by_network_id( self.ctxt, self.gid, self.network_id) ignored_keys = ['deleted', 'deleted_at', 'updated_at', 'processes'] self.assertIsNotNone(network["updated_at"]) self._assertEqualObjects(network, create_network, ignored_keys)
def show(self, req, gid, network_id): context = req.environ['rack.context'] try: self._uuid_check(gid, network_id) network = db.network_get_by_network_id(context, gid, network_id) self.manager.network_show(context, network) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) return self._view_builder.show(network)
def test_show(self): def _mock_data(): return { "network_id": NETWORK_ID1, "neutron_network_id": None, "gid": GID, "user_id": "noauth", "project_id": "noauth", "display_name": "net-45212048-abc3-43cc-89b3-377341426ac", "is_admin": "True", "cidr": "10.0.0.0/24", "ext_router": "11212048-abc3-43cc-89b3-377341426aca", "status": "Exist"} mock_data = _mock_data() self.mox.StubOutWithMock(db, "network_get_by_network_id") self.mox.StubOutWithMock(manager.ResourceOperator, "network_show") db.network_get_by_network_id(IsA(context.RequestContext), GID, NETWORK_ID1).AndReturn(_mock_data()) manager.ResourceOperator.network_show(IsA(context.RequestContext), IsA(dict)) self.mox.ReplayAll() url = '/v1/groups/' + GID + '/networks' req = get_request(url + "/" + NETWORK_ID1, 'GET') res = req.get_response(self.app) body = jsonutils.loads(res.body) expect = mock_data expect.update(ext_router_id="11212048-abc3-43cc-89b3-377341426aca") expect.update(name="net-45212048-abc3-43cc-89b3-377341426ac") expect.update(cidr="10.0.0.0/24") self.assertEqual(res.status_code, 200) for key in body["network"]: self.assertEqual(expect[key], body["network"][key])
def show(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) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) return self._view_builder.show(network)
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 test_network_get_by_network_id(self): values = { "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 } for i in range(1 - 5): values["network_id"] = "network_id" + str(i) db.network_create(self.ctxt, values) values["network_id"] = self.network_id db.network_create(self.ctxt, values) network = db.network_get_by_network_id( self.ctxt, self.gid, self.network_id) self.assertEqual(network["network_id"], self.network_id)