def create_class(cls, context, class_name, resource, limit): try: db.quota_class_get(context, class_name, resource) except exception.QuotaClassNotFound: cls._create_class_in_db(context, class_name, resource, limit) else: raise exception.QuotaClassExists(class_name=class_name, resource=resource)
def _create_class_in_db(context, class_name, resource, limit): # NOTE(melwitt): There's no unique constraint on the QuotaClass model, # so check for duplicate manually. try: Quotas._get_class_from_db(context, class_name, resource) except exception.QuotaClassNotFound: pass else: raise exception.QuotaClassExists(class_name=class_name, resource=resource) quota_class_ref = api_models.QuotaClass() quota_class_ref.class_name = class_name quota_class_ref.resource = resource quota_class_ref.hard_limit = limit quota_class_ref.save(context.session) return quota_class_ref