def test_quota_class_destroy(self):
     quota_class = db.quota_class_create(self.ctxt, self.class_name,
                                         self.resource, self.limit)
     db.quota_class_destroy(self.ctxt, self.class_name, self.resource)
     self.assertRaises(exception.QuotaClassNotFound, db.quota_class_get,
                       self.ctxt, quota_class.class_name,
                       quota_class.resource)
 def test_quota_class_update(self):
     quota_class = db.quota_class_create(self.ctxt, self.class_name,
                                         self.resource, self.limit)
     db.quota_class_update(self.ctxt, quota_class.class_name,
                           quota_class.resource, 20)
     quota_class = db.quota_class_get(self.ctxt, self.class_name,
                                      self.resource)
     self.assertEqual(20, quota_class.hard_limit)
 def test_quota_class_get(self):
     quota_class = db.quota_class_create(self.ctxt, self.class_name,
                                         self.resource, self.limit)
     self._assertEqualObjects(
         quota_class,
         db.quota_class_get(self.ctxt, quota_class.class_name,
                            quota_class.resource))
     db.quota_class_destroy(self.ctxt, self.class_name, self.resource)
Beispiel #4
0
    def update(self, req, id, body):
        context = req.environ['karbor.context']

        LOG.info("Update quota class with name: %s", id, context=context)
        context.can(quota_class_policy.UPDATE_POLICY)

        quota_class_name = id
        bad_keys = []
        for key, value in body.get('quota_class', {}).items():
            if key not in QUOTAS:
                bad_keys.append(key)
                continue
            if key in QUOTAS and value:
                try:
                    value = int(value)
                except (ValueError, TypeError):
                    msg = _("Quota '%(value)s' for %(key)s should be "
                            "integer.") % {
                                'value': value,
                                'key': key
                            }
                    LOG.warning(msg)
                    raise exc.HTTPBadRequest(explanation=msg)

        for key in body['quota_class'].keys():
            if key in QUOTAS:
                value = int(body['quota_class'][key])
                self._validate_quota_limit(value)
                try:
                    db.quota_class_update(context, quota_class_name, key,
                                          value)
                except exception.QuotaClassNotFound:
                    db.quota_class_create(context, quota_class_name, key,
                                          value)
                except exception.AdminRequired:
                    raise exc.HTTPForbidden()

        LOG.info("Update quota class successfully.",
                 resource={'id': quota_class_name})
        quota_class = QUOTAS.get_class_quotas(context, id)
        return self._view_builder.detail_list(req, quota_class)
 def test_quota_class_create(self):
     quota_class = db.quota_class_create(self.ctxt, self.class_name,
                                         self.resource, self.limit)
     self.assertEqual("volume_backups", quota_class.resource)
     db.quota_class_destroy(self.ctxt, self.class_name, self.resource)