示例#1
0
 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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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()
示例#6
0
    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)
示例#7
0
    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)
示例#8
0
    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])
示例#9
0
    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)
示例#10
0
    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())
示例#11
0
    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)