From 73837ce05a9bf07c7dd4e15c98eee511ff9e1a10 Mon Sep 17 00:00:00 2001 From: zhangqing Date: Tue, 17 Mar 2020 20:50:49 +0800 Subject: [PATCH] fix bug in quota checking When project quota set unlimited(-1), and user in the project is limited to a value.Then project quota must smaller than project usage when checking quotas, which means the value 'overs' is not None. In this case, even though the user not over the quota, but they can not create share Closes-bug: #1872872 Change-Id: Id9e2bcb5d30d2b81b0723dd296b537ac7d4519f2 (cherry picked from commit 780053968270900a1402fa0db4ae96bd16060ad4) --- manila/db/sqlalchemy/api.py | 2 +- .../bug-1872872-fix-quota-checking-b06fd372be143101.yaml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/bug-1872872-fix-quota-checking-b06fd372be143101.yaml diff --git a/manila/db/sqlalchemy/api.py b/manila/db/sqlalchemy/api.py index 69bdf61ca5..389779a062 100644 --- a/manila/db/sqlalchemy/api.py +++ b/manila/db/sqlalchemy/api.py @@ -1070,7 +1070,7 @@ def _quota_reserve(context, resources, project_quotas, user_or_st_quotas, project_usages[key] = value overs = [res for res, delta in deltas.items() if user_or_st_quotas[res] >= 0 and delta >= 0 and - (project_quotas[res] < delta + + (0 <= project_quotas[res] < delta + project_usages[res]['total'] or user_or_st_quotas[res] < delta + user_or_st_usages[res].total)] diff --git a/releasenotes/notes/bug-1872872-fix-quota-checking-b06fd372be143101.yaml b/releasenotes/notes/bug-1872872-fix-quota-checking-b06fd372be143101.yaml new file mode 100644 index 0000000000..b00ac3ba03 --- /dev/null +++ b/releasenotes/notes/bug-1872872-fix-quota-checking-b06fd372be143101.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Fixed quota issue that made it impossible to create resources when the project had the quotas + set to unlimited, and the user had a limited amount of quotas to use. Now, operations in the + mentioned quota scenario are working properly. Please see `Launchpad bug 1872872 + `_ for more details.