From 682fb1de14c142816df2a453062abfd351157a4b Mon Sep 17 00:00:00 2001 From: liyingjun Date: Fri, 17 May 2013 11:20:50 +0800 Subject: Editable default quota support Implement blueprint edit-default-quota DocImpact Using the class quotas named `default` as the default editable quotas. We can use the following novaclient command to update default quota: nova quota-class-update default Change-Id: I5a5001fadcbd61d550ebd5bdc33613b0ffdf29b2 --- nova/db/api.py | 5 +++++ nova/db/sqlalchemy/api.py | 13 +++++++++++++ 2 files changed, 18 insertions(+) (limited to 'nova/db') diff --git a/nova/db/api.py b/nova/db/api.py index d294ee1d7..ffb992359 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -911,6 +911,11 @@ def quota_class_get(context, class_name, resource): return IMPL.quota_class_get(context, class_name, resource) +def quota_class_get_default(context): + """Retrieve all default quotas.""" + return IMPL.quota_class_get_default(context) + + def quota_class_get_all_by_name(context, class_name): """Retrieve all quotas associated with a given quota class.""" return IMPL.quota_class_get_all_by_name(context, class_name) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index a35e8154d..2edd7ca52 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -81,6 +81,7 @@ get_session = db_session.get_session _SHADOW_TABLE_PREFIX = 'shadow_' +_DEFAULT_QUOTA_NAME = 'default' def get_backend(): @@ -2576,6 +2577,18 @@ def quota_class_get(context, class_name, resource): return result +def quota_class_get_default(context): + rows = model_query(context, models.QuotaClass, read_deleted="no").\ + filter_by(class_name=_DEFAULT_QUOTA_NAME).\ + all() + + result = {'class_name': _DEFAULT_QUOTA_NAME} + for row in rows: + result[row.resource] = row.hard_limit + + return result + + @require_context def quota_class_get_all_by_name(context, class_name): nova.context.authorize_quota_class_context(context, class_name) -- cgit