yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #34402
[Bug 1461665] Re: nova.tests.unit.db.test_db_api sets up quotas incorrectly
** Changed in: nova
Status: Fix Committed => Fix Released
** Changed in: nova
Milestone: None => liberty-1
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1461665
Title:
nova.tests.unit.db.test_db_api sets up quotas incorrectly
Status in OpenStack Compute (Nova):
Fix Released
Bug description:
Faced this problem when porting tests to python3. user_quotas[res]
field is bring populated with the class object instead of hard_limit.
python2 is magically allowing "user_quotas[res] >= 0" to succed when
that variable has nova.db.sqlalchemy.models.Quota or
nova.db.sqlalchemy.models.ProjectQuota
You can also reproduce this with the following patch:
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 16342e1..7e7e43a 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -3428,6 +3428,10 @@ def _calculate_overquota(project_quotas, user_quotas, deltas,
for res, delta in deltas.items():
# We can't go over-quota if we're not reserving anything or if
# we have unlimited quotas.
+ if not isinstance(user_quotas[res], six.integer_types):
+ raise Exception('user_quotas[res] is not an integer - %r'
+ % user_quotas[res])
+
if user_quotas[res] >= 0 and delta >= 0:
# over if the project usage + delta is more than project quota
if project_quotas[res] < delta + project_usages[res]['total']:
Here's a sample output:
http://paste.openstack.org/show/260349/
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1461665/+subscriptions
References