summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-11-27 02:07:56 +0000
committerGerrit Code Review <review@openstack.org>2012-11-27 02:07:56 +0000
commitdf372a4145053a00e0b71d4001371274ecac353d (patch)
treeca74c0776e249ed2a5e3225a1c3304b84be931f9
parent6d28596f5b7b1977d43a23d7c3678af3facde926 (diff)
parent1857821b4599b7af249fbc136a1b75ae5d8ec38e (diff)
downloadnova-df372a4145053a00e0b71d4001371274ecac353d.tar.gz
Merge "nova-manage doesn't validate key to update the quota" into stable/folsom
-rwxr-xr-xbin/nova-manage6
-rw-r--r--nova/tests/test_nova_manage.py5
2 files changed, 10 insertions, 1 deletions
diff --git a/bin/nova-manage b/bin/nova-manage
index 176273c720..5f3582081c 100755
--- a/bin/nova-manage
+++ b/bin/nova-manage
@@ -225,13 +225,17 @@ class ProjectCommands(object):
def quota(self, project_id, key=None, value=None):
"""Set or display quotas for project"""
ctxt = context.get_admin_context()
- if key:
+ project_quota = QUOTAS.get_project_quotas(ctxt, project_id)
+ if key and key in project_quota:
if value.lower() == 'unlimited':
value = -1
try:
db.quota_update(ctxt, project_id, key, value)
except exception.ProjectQuotaNotFound:
db.quota_create(ctxt, project_id, key, value)
+ else:
+ print "error: Invalid key %s supplied for update" % key
+ sys.exit(2)
project_quota = QUOTAS.get_project_quotas(ctxt, project_id)
for key, value in project_quota.iteritems():
if value['limit'] < 0 or value['limit'] is None:
diff --git a/nova/tests/test_nova_manage.py b/nova/tests/test_nova_manage.py
index 537aee2870..ec5d452a5c 100644
--- a/nova/tests/test_nova_manage.py
+++ b/nova/tests/test_nova_manage.py
@@ -367,3 +367,8 @@ class ProjectCommandsTestCase(test.TestCase):
sys.stdout = sys.__stdout__
result = output.getvalue()
self.assertEquals(('volumes: unlimited' in result), True)
+
+ def test_quota_update_invalid_key(self):
+ self.assertRaises(SystemExit,
+ self.commands.quota, 'admin', 'volumes1', '10'
+ )