diff options
-rw-r--r-- | nova/db/sqlalchemy/api.py | 6 | ||||
-rw-r--r-- | nova/tests/test_quota.py | 24 |
2 files changed, 30 insertions, 0 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index e9c34ab1fc..69e44cda17 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -2232,6 +2232,9 @@ def quota_get_all_by_project(context, project_id): @require_admin_context def quota_create(context, project_id, resource, limit): + # NOTE: Treat -1 as unlimited for consistency w/ flags + if limit == -1: + limit = None quota_ref = models.Quota() quota_ref.project_id = project_id quota_ref.resource = resource @@ -2242,6 +2245,9 @@ def quota_create(context, project_id, resource, limit): @require_admin_context def quota_update(context, project_id, resource, limit): + # NOTE: Treat -1 as unlimited for consistency w/ flags + if limit == -1: + limit = None session = get_session() with session.begin(): quota_ref = quota_get(context, project_id, resource, session=session) diff --git a/nova/tests/test_quota.py b/nova/tests/test_quota.py index a3ec9727bf..28c92ca9c4 100644 --- a/nova/tests/test_quota.py +++ b/nova/tests/test_quota.py @@ -152,6 +152,10 @@ class QuotaTestCase(test.TestCase): num_instances = quota.allowed_instances(self.context, 100, instance_type) self.assertEqual(num_instances, 100) + db.quota_create(self.context, self.project_id, 'instances', -1) + num_instances = quota.allowed_instances(self.context, 100, + instance_type) + self.assertEqual(num_instances, 100) num_instances = quota.allowed_instances(self.context, 101, instance_type) self.assertEqual(num_instances, 101) @@ -166,6 +170,10 @@ class QuotaTestCase(test.TestCase): num_instances = quota.allowed_instances(self.context, 100, instance_type) self.assertEqual(num_instances, 100) + db.quota_create(self.context, self.project_id, 'ram', -1) + num_instances = quota.allowed_instances(self.context, 100, + instance_type) + self.assertEqual(num_instances, 100) num_instances = quota.allowed_instances(self.context, 101, instance_type) self.assertEqual(num_instances, 101) @@ -180,6 +188,10 @@ class QuotaTestCase(test.TestCase): num_instances = quota.allowed_instances(self.context, 100, instance_type) self.assertEqual(num_instances, 100) + db.quota_create(self.context, self.project_id, 'cores', -1) + num_instances = quota.allowed_instances(self.context, 100, + instance_type) + self.assertEqual(num_instances, 100) num_instances = quota.allowed_instances(self.context, 101, instance_type) self.assertEqual(num_instances, 101) @@ -191,6 +203,9 @@ class QuotaTestCase(test.TestCase): db.quota_create(self.context, self.project_id, 'volumes', None) volumes = quota.allowed_volumes(self.context, 100, 1) self.assertEqual(volumes, 100) + db.quota_create(self.context, self.project_id, 'volumes', -1) + volumes = quota.allowed_volumes(self.context, 100, 1) + self.assertEqual(volumes, 100) volumes = quota.allowed_volumes(self.context, 101, 1) self.assertEqual(volumes, 101) @@ -201,6 +216,9 @@ class QuotaTestCase(test.TestCase): db.quota_create(self.context, self.project_id, 'gigabytes', None) volumes = quota.allowed_volumes(self.context, 100, 1) self.assertEqual(volumes, 100) + db.quota_create(self.context, self.project_id, 'gigabytes', -1) + volumes = quota.allowed_volumes(self.context, 100, 1) + self.assertEqual(volumes, 100) volumes = quota.allowed_volumes(self.context, 101, 1) self.assertEqual(volumes, 101) @@ -211,6 +229,9 @@ class QuotaTestCase(test.TestCase): db.quota_create(self.context, self.project_id, 'floating_ips', None) floating_ips = quota.allowed_floating_ips(self.context, 100) self.assertEqual(floating_ips, 100) + db.quota_create(self.context, self.project_id, 'floating_ips', -1) + floating_ips = quota.allowed_floating_ips(self.context, 100) + self.assertEqual(floating_ips, 100) floating_ips = quota.allowed_floating_ips(self.context, 101) self.assertEqual(floating_ips, 101) @@ -221,6 +242,9 @@ class QuotaTestCase(test.TestCase): db.quota_create(self.context, self.project_id, 'metadata_items', None) items = quota.allowed_metadata_items(self.context, 100) self.assertEqual(items, 100) + db.quota_create(self.context, self.project_id, 'metadata_items', -1) + items = quota.allowed_metadata_items(self.context, 100) + self.assertEqual(items, 100) items = quota.allowed_metadata_items(self.context, 101) self.assertEqual(items, 101) |