def sm_volume_get_all(context):
return model_query(context, models.SMVolume, read_deleted="yes").all()
-
-
-###############################
-
-
-@require_context
-def quota_get(context, project_id, resource, session=None):
- result = model_query(context, models.Quota, session=session,
- read_deleted="no").\
- filter_by(project_id=project_id).\
- filter_by(resource=resource).\
- first()
-
- if not result:
- raise exception.ProjectQuotaNotFound(project_id=project_id)
-
- return result
-
-
-@require_context
-def quota_get_all_by_project(context, project_id):
- authorize_project_context(context, project_id)
-
- rows = model_query(context, models.Quota, read_deleted="no").\
- filter_by(project_id=project_id).\
- all()
-
- result = {'project_id': project_id}
- for row in rows:
- result[row.resource] = row.hard_limit
-
- return result
-
-
-@require_admin_context
-def quota_create(context, project_id, resource, limit):
- quota_ref = models.Quota()
- quota_ref.project_id = project_id
- quota_ref.resource = resource
- quota_ref.hard_limit = limit
- quota_ref.save()
- return quota_ref
-
-
-@require_admin_context
-def quota_update(context, project_id, resource, limit):
- session = get_session()
- with session.begin():
- quota_ref = quota_get(context, project_id, resource, session=session)
- quota_ref.hard_limit = limit
- quota_ref.save(session=session)
-
-
-@require_admin_context
-def quota_destroy(context, project_id, resource):
- session = get_session()
- with session.begin():
- quota_ref = quota_get(context, project_id, resource, session=session)
- quota_ref.delete(session=session)
-
-
-@require_admin_context
-def quota_destroy_all_by_project(context, project_id):
- session = get_session()
- with session.begin():
- quotas = model_query(context, models.Quota, session=session,
- read_deleted="no").\
- filter_by(project_id=project_id).\
- all()
-
- for quota_ref in quotas:
- quota_ref.delete(session=session)
-
-
-###################
-
-
-@require_context
-def quota_class_get(context, class_name, resource, session=None):
- result = model_query(context, models.QuotaClass, session=session,
- read_deleted="no").\
- filter_by(class_name=class_name).\
- filter_by(resource=resource).\
- first()
-
- if not result:
- raise exception.QuotaClassNotFound(class_name=class_name)
-
- return result
-
-
-@require_context
-def quota_class_get_all_by_name(context, class_name):
- authorize_quota_class_context(context, class_name)
-
- rows = model_query(context, models.QuotaClass, read_deleted="no").\
- filter_by(class_name=class_name).\
- all()
-
- result = {'class_name': class_name}
- for row in rows:
- result[row.resource] = row.hard_limit
-
- return result
-
-
-@require_admin_context
-def quota_class_create(context, class_name, resource, limit):
- quota_class_ref = models.QuotaClass()
- quota_class_ref.class_name = class_name
- quota_class_ref.resource = resource
- quota_class_ref.hard_limit = limit
- quota_class_ref.save()
- return quota_class_ref
-
-
-@require_admin_context
-def quota_class_update(context, class_name, resource, limit):
- session = get_session()
- with session.begin():
- quota_class_ref = quota_class_get(context, class_name, resource,
- session=session)
- quota_class_ref.hard_limit = limit
- quota_class_ref.save(session=session)
-
-
-@require_admin_context
-def quota_class_destroy(context, class_name, resource):
- session = get_session()
- with session.begin():
- quota_class_ref = quota_class_get(context, class_name, resource,
- session=session)
- quota_class_ref.delete(session=session)
-
-
-@require_admin_context
-def quota_class_destroy_all_by_name(context, class_name):
- session = get_session()
- with session.begin():
- quota_classes = model_query(context, models.QuotaClass,
- session=session, read_deleted="no").\
- filter_by(class_name=class_name).\
- all()
-
- for quota_class_ref in quota_classes:
- quota_class_ref.delete(session=session)
-
-
-@require_context
-def quota_usage_get(context, project_id, resource, session=None):
- result = model_query(context, models.QuotaUsage, session=session,
- read_deleted="no").\
- filter_by(project_id=project_id).\
- filter_by(resource=resource).\
- first()
-
- if not result:
- raise exception.QuotaUsageNotFound(project_id=project_id)
-
- return result
-
-
-@require_context
-def quota_usage_get_all_by_project(context, project_id):
- authorize_project_context(context, project_id)
-
- rows = model_query(context, models.QuotaUsage, read_deleted="no").\
- filter_by(project_id=project_id).\
- all()
-
- result = {'project_id': project_id}
- for row in rows:
- result[row.resource] = dict(in_use=row.in_use, reserved=row.reserved)
-
- return result
-
-
-@require_admin_context
-def quota_usage_create(context, project_id, resource, in_use, reserved,
- until_refresh, session=None, save=True):
- quota_usage_ref = models.QuotaUsage()
- quota_usage_ref.project_id = project_id
- quota_usage_ref.resource = resource
- quota_usage_ref.in_use = in_use
- quota_usage_ref.reserved = reserved
- quota_usage_ref.until_refresh = until_refresh
-
- # Allow us to hold the save operation until later; keeps the
- # transaction in quota_reserve() from breaking too early
- if save:
- quota_usage_ref.save(session=session)
-
- return quota_usage_ref
-
-
-@require_admin_context
-def quota_usage_update(context, project_id, resource, in_use, reserved,
- until_refresh, session=None):
- def do_update(session):
- quota_usage_ref = quota_usage_get(context, project_id, resource,
- session=session)
- quota_usage_ref.in_use = in_use
- quota_usage_ref.reserved = reserved
- quota_usage_ref.until_refresh = until_refresh
- quota_usage_ref.save(session=session)
-
- if session:
- # Assume caller started a transaction
- do_update(session)
- else:
- session = get_session()
- with session.begin():
- do_update(session)
-
-
-@require_admin_context
-def quota_usage_destroy(context, project_id, resource):
- session = get_session()
- with session.begin():
- quota_usage_ref = quota_usage_get(context, project_id, resource,
- session=session)
- quota_usage_ref.delete(session=session)