Example #1
0
    def put(self, class_name):
        """Update a class."""
        context = restcomm.extract_context_from_environ()

        LOG.info("Update quota class [class_name=%s]" % class_name)

        if not context.is_admin:
            pecan.abort(403, _('Admin required'))
        if not request.body:
            pecan.abort(400, _('Body required'))

        quota_class_set = eval(request.body).get('quota_class_set')

        if not quota_class_set:
            pecan.abort(400, _('Missing quota_class_set in the body'))

        utils.validate_quota_limits(quota_class_set)

        for key, value in six.iteritems(quota_class_set):
            try:
                db_api.quota_class_update(context, class_name, key, value)
            except exceptions.QuotaClassNotFound:
                db_api.quota_class_create(context, class_name, key, value)

        values = db_api.quota_class_get_all_by_name(context, class_name)

        return self._format_quota_set(class_name, values)
Example #2
0
    def put(self, project_id, class_name):
        """Update a class."""
        context = restcomm.extract_context_from_environ()
        valid_project_id = uuidutils.is_uuid_like(project_id)
        if not valid_project_id:
            pecan.abort(400, _('Invalid request URL'))
        if project_id != context.project and not context.is_admin:
            pecan.abort(400, _('Invalid request URL'))
        LOG.info("Update quota class [class_name=%s]" % class_name)

        if not context.is_admin:
            pecan.abort(403, _('Admin required'))
        if not request.body:
            pecan.abort(400, _('Body required'))

        quota_class_set = eval(request.body).get('quota_class_set')

        if not quota_class_set:
            pecan.abort(400, _('Missing quota_class_set in the body'))

        utils.validate_quota_limits(quota_class_set)

        for key, value in quota_class_set.items():
            try:
                db_api.quota_class_update(context, class_name, key, value)
            except exceptions.QuotaClassNotFound:
                db_api.quota_class_create(context, class_name, key, value)

        values = db_api.quota_class_get_all_by_name(context, class_name)

        return self._format_quota_set(context, class_name, values)
Example #3
0
    def get(self, class_name):
        context = restcomm.extract_context_from_environ()

        LOG.info("Fetch quotas for [class_name=%s]" % class_name)

        values = db_api.quota_class_get_all_by_name(context, class_name)

        return self._format_quota_set(class_name, values)
Example #4
0
    def get(self, project_id, class_name):
        context = restcomm.extract_context_from_environ()
        valid_project_id = uuidutils.is_uuid_like(project_id)
        if not valid_project_id:
            pecan.abort(400, _('Invalid request URL'))
        if project_id != context.project and not context.is_admin:
            pecan.abort(400, _('Invalid request URL'))
        LOG.info("Fetch quotas for [class_name=%s]" % class_name)

        values = db_api.quota_class_get_all_by_name(context, class_name)

        return self._format_quota_set(context, class_name, values)