def post(self, *args, **kwargs):
        """Create a new tenant.

        Args:
            [0], the tenant id

        Request:
            version: protocol version (1.0)
            owner: the username of the requester
            tenant_name: the network name
            desc: a description for the new tenant
            bssid_type: shared or unique
            plmn_id: the PLMN id
        """

        bssid_type = kwargs["bssid_type"] \
            if "bssid_type" in kwargs else T_TYPE_UNIQUE

        plmn_id = PLMNID(kwargs["plmn_id"]) if "plmn_id" in kwargs else None

        tenant_id = UUID(args[0]) if args else None

        RUNTIME.add_tenant(kwargs['owner'], kwargs['desc'],
                           kwargs['tenant_name'], bssid_type, tenant_id,
                           plmn_id)

        self.set_header("Location", "/api/v1/tenants/%s" % tenant_id)
Example #2
0
    def post(self, *args, **kwargs):
        """ Create a new tenant.

        Args:
            None

        Request:
            version: protocol version (1.0)
            owner: the username of the requester
            tenant_id: the network name
            desc: a description for the new tenant

        Example URLs:

            POST /api/v1/tenants

        """

        try:

            if len(args) > 1:
                raise ValueError("Invalid url")

            request = tornado.escape.json_decode(self.request.body)

            if "version" not in request:
                raise ValueError("missing version element")

            if "owner" not in request:
                raise ValueError("missing owner element")

            if "desc" not in request:
                raise ValueError("missing desc element")

            if "tenant_name" not in request:
                raise ValueError("missing tenant_name element")

            if len(args) == 1:
                tenant_id = UUID(args[0])
            else:
                tenant_id = None

            tenant_id = \
                RUNTIME.add_tenant(request['owner'],
                                   request['desc'],
                                   request['tenant_name'],
                                   tenant_id)

            self.set_header("Location", "/api/v1/tenants/%s" % tenant_id)

        except ValueError as ex:
            self.send_error(400, message=ex)
        except KeyError as ex:
            self.send_error(404, message=ex)

        self.set_status(201, None)
Example #3
0
    def post(self, *args, **kwargs):
        """ Create a new tenant.

        Args:
            None

        Request:
            version: protocol version (1.0)
            owner: the username of the requester
            tenant_id: the network name
            desc: a description for the new tenant
            bssid_type: shared or unique

        Example URLs:

            POST /api/v1/tenants

        """

        try:

            if len(args) > 1:
                raise ValueError("Invalid url")

            request = tornado.escape.json_decode(self.request.body)

            if "version" not in request:
                raise ValueError("missing version element")

            if "owner" not in request:
                raise ValueError("missing owner element")

            if "desc" not in request:
                raise ValueError("missing desc element")

            if "tenant_name" not in request:
                raise ValueError("missing tenant_name element")

            if "bssid_type" not in request:
                bssid_type = T_TYPE_UNIQUE
            else:
                bssid_type = request['bssid_type']

            if bssid_type not in T_TYPES:
                raise ValueError("invalid bssid_type %s" % bssid_type)

            if len(args) == 1:
                tenant_id = UUID(args[0])
            else:
                tenant_id = None

            tenant_name = SSID(request['tenant_name'])

            RUNTIME.add_tenant(request['owner'], request['desc'], tenant_name,
                               bssid_type, tenant_id)

            self.set_header("Location", "/api/v1/tenants/%s" % tenant_id)

        except ValueError as ex:
            self.send_error(400, message=ex)
        except KeyError as ex:
            self.send_error(404, message=ex)

        self.set_status(201, None)