Example #1
0
    def update(self, req, id, body):
        context = req.environ['cinder.context']
        authorize(context)
        self.validate_string_length(id,
                                    'quota_class_name',
                                    min_length=1,
                                    max_length=255)

        quota_class = id
        if not self.is_valid_body(body, 'quota_class_set'):
            msg = (_("Missing required element quota_class_set"
                     " in request body."))
            raise webob.exc.HTTPBadRequest(explanation=msg)

        for key, value in body['quota_class_set'].items():
            if key in QUOTAS:
                try:
                    value = utils.validate_integer(value,
                                                   key,
                                                   min_value=-1,
                                                   max_value=db.MAX_INT)
                    db.quota_class_update(context, quota_class, key, value)
                except exception.QuotaClassNotFound:
                    db.quota_class_create(context, quota_class, key, value)
                except exception.AdminRequired:
                    raise webob.exc.HTTPForbidden()
        return {
            'quota_class_set': QUOTAS.get_class_quotas(context, quota_class)
        }
Example #2
0
 def test_quota_class_get_all_by_name(self):
     sample1 = db.quota_class_create(self.ctxt, 'test2', 'res1', 43)
     sample2 = db.quota_class_create(self.ctxt, 'test2', 'res2', 44)
     self.assertEqual({'class_name': 'test_qc', 'test_resource': 42},
                      db.quota_class_get_all_by_name(self.ctxt, 'test_qc'))
     self.assertEqual({'class_name': 'test2', 'res1': 43, 'res2': 44},
                      db.quota_class_get_all_by_name(self.ctxt, 'test2'))
Example #3
0
    def update(self, req, id, body):
        context = req.environ['cinder.context']
        authorize(context)
        quota_class = id
        if not self.is_valid_body(body, 'quota_class_set'):
            msg = (_("Missing required element quota_class_set"
                     " in request body."))
            raise webob.exc.HTTPBadRequest(explanation=msg)

        for key in body['quota_class_set'].keys():
            if key in QUOTAS:
                try:
                    value = int(body['quota_class_set'][key])
                except ValueError:
                    msg = _("Quota class limit must be specified as an"
                            " integer value.")
                    raise webob.exc.HTTPBadRequest(explanation=msg)
                if value < -1:
                    msg = _("Quota class limit must be -1 or greater.")
                    raise webob.exc.HTTPBadRequest(explanation=msg)
                try:
                    db.quota_class_update(context, quota_class, key, value)
                except exception.QuotaClassNotFound:
                    db.quota_class_create(context, quota_class, key, value)
                except exception.AdminRequired:
                    raise webob.exc.HTTPForbidden()
        return {'quota_class_set': QUOTAS.get_class_quotas(context,
                                                           quota_class)}
Example #4
0
    def update(self, req, id, body):
        context = req.environ['cinder.context']
        authorize(context)
        quota_class = id
        if not self.is_valid_body(body, 'quota_class_set'):
            msg = (_("Missing required element quota_class_set"
                     " in request body."))
            raise webob.exc.HTTPBadRequest(explanation=msg)

        for key in body['quota_class_set'].keys():
            if key in QUOTAS:
                try:
                    value = int(body['quota_class_set'][key])
                except ValueError:
                    msg = _("Quota class limit must be specified as an"
                            " integer value.")
                    raise webob.exc.HTTPBadRequest(explanation=msg)
                if value < -1:
                    msg = _("Quota class limit must be -1 or greater.")
                    raise webob.exc.HTTPBadRequest(explanation=msg)
                try:
                    db.quota_class_update(context, quota_class, key, value)
                except exception.QuotaClassNotFound:
                    db.quota_class_create(context, quota_class, key, value)
                except exception.AdminRequired:
                    raise webob.exc.HTTPForbidden()
        return {
            'quota_class_set': QUOTAS.get_class_quotas(context, quota_class)
        }
    def update(self, req, id, body):
        context = req.environ['cinder.context']
        authorize(context)
        self.validate_string_length(id, 'quota_class_name',
                                    min_length=1, max_length=255)

        quota_class = id
        if not self.is_valid_body(body, 'quota_class_set'):
            msg = (_("Missing required element quota_class_set"
                     " in request body."))
            raise webob.exc.HTTPBadRequest(explanation=msg)

        for key, value in body['quota_class_set'].items():
            if key in QUOTAS or key in GROUP_QUOTAS:
                try:
                    value = utils.validate_integer(value, key, min_value=-1,
                                                   max_value=db.MAX_INT)
                    db.quota_class_update(context, quota_class, key, value)
                except exception.QuotaClassNotFound:
                    db.quota_class_create(context, quota_class, key, value)
                except exception.AdminRequired:
                    raise webob.exc.HTTPForbidden()

        quota_set = QUOTAS.get_class_quotas(context, quota_class)
        group_quota_set = GROUP_QUOTAS.get_class_quotas(context, quota_class)
        quota_set.update(group_quota_set)

        return {'quota_class_set': quota_set}
    def update(self, req, id, body):
        context = req.environ['cinder.context']
        context.authorize(policy.MANAGE_POLICY)
        self.validate_string_length(id,
                                    'quota_class_name',
                                    min_length=1,
                                    max_length=255)

        quota_class = id
        self.assert_valid_body(body, 'quota_class_set')

        for key, value in body['quota_class_set'].items():
            if key in QUOTAS or key in GROUP_QUOTAS:
                try:
                    value = utils.validate_integer(value,
                                                   key,
                                                   min_value=-1,
                                                   max_value=db.MAX_INT)
                    db.quota_class_update(context, quota_class, key, value)
                except exception.QuotaClassNotFound:
                    db.quota_class_create(context, quota_class, key, value)
                except exception.AdminRequired:
                    raise webob.exc.HTTPForbidden()

        quota_set = QUOTAS.get_class_quotas(context, quota_class)
        group_quota_set = GROUP_QUOTAS.get_class_quotas(context, quota_class)
        quota_set.update(group_quota_set)

        return {'quota_class_set': quota_set}
Example #7
0
    def update(self, req, id, body):
        context = req.environ['cinder.context']
        context.authorize(policy.MANAGE_POLICY)
        self.validate_string_length(id, 'quota_class_name',
                                    min_length=1, max_length=255)

        quota_class = id
        self.assert_valid_body(body, 'quota_class_set')

        for key, value in body['quota_class_set'].items():
            if key in QUOTAS or key in GROUP_QUOTAS:
                try:
                    value = utils.validate_integer(value, key, min_value=-1,
                                                   max_value=db.MAX_INT)
                    db.quota_class_update(context, quota_class, key, value)
                except exception.QuotaClassNotFound:
                    db.quota_class_create(context, quota_class, key, value)
                except exception.AdminRequired:
                    raise webob.exc.HTTPForbidden()

        quota_set = QUOTAS.get_class_quotas(context, quota_class)
        group_quota_set = GROUP_QUOTAS.get_class_quotas(context, quota_class)
        quota_set.update(group_quota_set)

        return {'quota_class_set': quota_set}
Example #8
0
 def test_quota_class_get_all_by_name(self):
     db.quota_class_create(self.ctxt, "test2", "res1", 43)
     db.quota_class_create(self.ctxt, "test2", "res2", 44)
     self.assertEqual(
         {"class_name": "test_qc", "test_resource": 42}, db.quota_class_get_all_by_name(self.ctxt, "test_qc")
     )
     self.assertEqual(
         {"class_name": "test2", "res1": 43, "res2": 44}, db.quota_class_get_all_by_name(self.ctxt, "test2")
     )
Example #9
0
 def test_quota_class_get_all_by_name(self):
     sample1 = db.quota_class_create(self.ctxt, 'test2', 'res1', 43)
     sample2 = db.quota_class_create(self.ctxt, 'test2', 'res2', 44)
     self.assertEqual({
         'class_name': 'test_qc',
         'test_resource': 42
     }, db.quota_class_get_all_by_name(self.ctxt, 'test_qc'))
     self.assertEqual({
         'class_name': 'test2',
         'res1': 43,
         'res2': 44
     }, db.quota_class_get_all_by_name(self.ctxt, 'test2'))
Example #10
0
 def update(self, req, id, body):
     context = req.environ['cinder.context']
     authorize(context)
     quota_class = id
     for key in body['quota_class_set'].keys():
         if key in QUOTAS:
             value = int(body['quota_class_set'][key])
             try:
                 db.quota_class_update(context, quota_class, key, value)
             except exception.QuotaClassNotFound:
                 db.quota_class_create(context, quota_class, key, value)
             except exception.AdminRequired:
                 raise webob.exc.HTTPForbidden()
     return {'quota_class_set': QUOTAS.get_class_quotas(context,
                                                        quota_class)}
Example #11
0
    def update(self, req, id, body):
        context = req.environ['cinder.context']
        context.authorize(policy.UPDATE_POLICY)
        self.validate_string_length(id,
                                    'quota_class_name',
                                    min_length=1,
                                    max_length=255)

        quota_class = id

        for key, value in body['quota_class_set'].items():
            try:
                db.quota_class_update(context, quota_class, key, value)
            except exception.QuotaClassNotFound:
                db.quota_class_create(context, quota_class, key, value)
            except exception.AdminRequired:
                raise webob.exc.HTTPForbidden()

        quota_set = QUOTAS.get_class_quotas(context, quota_class)
        group_quota_set = GROUP_QUOTAS.get_class_quotas(context, quota_class)
        quota_set.update(group_quota_set)

        return {'quota_class_set': quota_set}
Example #12
0
 def test_quota_class_destroy_all_by_name(self):
     sample1 = db.quota_class_create(self.ctxt, 'test2', 'res1', 43)
     sample2 = db.quota_class_create(self.ctxt, 'test2', 'res2', 44)
     db.quota_class_destroy_all_by_name(self.ctxt, 'test2')
     self.assertEqual({'class_name': 'test2'},
                      db.quota_class_get_all_by_name(self.ctxt, 'test2'))
Example #13
0
 def setUp(self):
     super(DBAPIQuotaClassTestCase, self).setUp()
     self.sample_qc = db.quota_class_create(self.ctxt, 'test_qc',
                                            'test_resource', 42)
Example #14
0
 def test_quota_class_destroy_all_by_name(self):
     sample1 = db.quota_class_create(self.ctxt, 'test2', 'res1', 43)
     sample2 = db.quota_class_create(self.ctxt, 'test2', 'res2', 44)
     db.quota_class_destroy_all_by_name(self.ctxt, 'test2')
     self.assertEqual({'class_name': 'test2'},
                      db.quota_class_get_all_by_name(self.ctxt, 'test2'))
Example #15
0
 def setUp(self):
     super(DBAPIQuotaClassTestCase, self).setUp()
     self.sample_qc = db.quota_class_create(self.ctxt, 'test_qc',
                                            'test_resource', 42)
Example #16
0
 def test_quota_class_destroy_all_by_name(self):
     db.quota_class_create(self.ctxt, "test2", "res1", 43)
     db.quota_class_create(self.ctxt, "test2", "res2", 44)
     db.quota_class_destroy_all_by_name(self.ctxt, "test2")
     self.assertEqual({"class_name": "test2"}, db.quota_class_get_all_by_name(self.ctxt, "test2"))