From daf78cfb970af42242466c7edb082bdb7bbbb118 Mon Sep 17 00:00:00 2001 From: "Kevin L. Mitchell" Date: Tue, 30 Oct 2012 18:03:29 -0500 Subject: Add call to reset quota usage There are certain circumstances where we may need to indicate an uncertainty in a user's current usage of a given resource, thus forcing a recount of those resources currently in use. This adds a QUOTAS.usage_reset() call which can be used to do this. It works by resetting the current usage to -1, which will force the usage record to be refreshed the next time that user reserves those resources. Change-Id: I4a40c8edcc78ed9a7d18a293d4d7d6418b04b7f2 --- nova/db/api.py | 6 ++---- nova/db/sqlalchemy/api.py | 12 +++++++----- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'nova/db') diff --git a/nova/db/api.py b/nova/db/api.py index 82b7e895b..757f101b3 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -994,11 +994,9 @@ def quota_usage_get_all_by_project(context, project_id): return IMPL.quota_usage_get_all_by_project(context, project_id) -def quota_usage_update(context, project_id, resource, in_use, reserved, - until_refresh): +def quota_usage_update(context, project_id, resource, **kwargs): """Update a quota usage or raise if it does not exist.""" - return IMPL.quota_usage_update(context, project_id, resource, - in_use, reserved, until_refresh) + return IMPL.quota_usage_update(context, project_id, resource, **kwargs) def quota_usage_destroy(context, project_id, resource): diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index d68c39f6e..f5f7f3b15 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -2569,14 +2569,16 @@ def quota_usage_create(context, project_id, resource, in_use, reserved, @require_admin_context -def quota_usage_update(context, project_id, resource, in_use, reserved, - until_refresh, session=None): +def quota_usage_update(context, project_id, resource, session=None, **kwargs): 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 + if 'in_use' in kwargs: + quota_usage_ref.in_use = kwargs['in_use'] + if 'reserved' in kwargs: + quota_usage_ref.reserved = kwargs['reserved'] + if 'until_refresh' in kwargs: + quota_usage_ref.until_refresh = kwargs['until_refresh'] quota_usage_ref.save(session=session) if session: -- cgit