summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2011-03-02 17:36:21 -0500
committerMark Washenberger <mark.washenberger@rackspace.com>2011-03-02 17:36:21 -0500
commitd33866923958b3529a812f4eef7dea4a6591a423 (patch)
treecde40cef7e96aabf6b0e86a31a89a77c6cc12955 /nova
parent7b3ccd5fd1636ebc437a89a3667e6e712004e87f (diff)
add support for quotas on file injection
Diffstat (limited to 'nova')
-rw-r--r--nova/quota.py29
-rw-r--r--nova/tests/test_quota.py10
2 files changed, 33 insertions, 6 deletions
diff --git a/nova/quota.py b/nova/quota.py
index 6b52a97fa..14b388794 100644
--- a/nova/quota.py
+++ b/nova/quota.py
@@ -37,15 +37,22 @@ flags.DEFINE_integer('quota_floating_ips', 10,
'number of floating ips allowed per project')
flags.DEFINE_integer('quota_metadata_items', 128,
'number of metadata items allowed per instance')
+flags.DEFINE_integer('quota_file_injection_max_files', 5,
+ 'number of files allowed during file injection')
+flags.DEFINE_integer('quota_file_injection_max_file_bytes', 10 * 1024,
+ 'number of bytes allowed per file during file injection')
def get_quota(context, project_id):
- rval = {'instances': FLAGS.quota_instances,
- 'cores': FLAGS.quota_cores,
- 'volumes': FLAGS.quota_volumes,
- 'gigabytes': FLAGS.quota_gigabytes,
- 'floating_ips': FLAGS.quota_floating_ips,
- 'metadata_items': FLAGS.quota_metadata_items}
+ rval = {
+ 'instances': FLAGS.quota_instances,
+ 'cores': FLAGS.quota_cores,
+ 'volumes': FLAGS.quota_volumes,
+ 'gigabytes': FLAGS.quota_gigabytes,
+ 'floating_ips': FLAGS.quota_floating_ips,
+ 'metadata_items': FLAGS.quota_metadata_items,
+ }
+
try:
quota = db.quota_get(context, project_id)
for key in rval.keys():
@@ -106,6 +113,16 @@ def allowed_metadata_items(context, num_metadata_items):
return min(num_metadata_items, num_allowed_metadata_items)
+def allowed_file_injection_files(context):
+ """Return the number of files allowed per file injection"""
+ return FLAGS.quota_file_injection_max_files
+
+
+def allowed_file_injection_file_bytes(context):
+ """Return the number of bytes allowed per file during injection"""
+ return FLAGS.quota_file_injection_max_file_bytes
+
+
class QuotaError(exception.ApiError):
"""Quota Exceeeded"""
pass
diff --git a/nova/tests/test_quota.py b/nova/tests/test_quota.py
index 1e42fddf3..48e5a5538 100644
--- a/nova/tests/test_quota.py
+++ b/nova/tests/test_quota.py
@@ -176,3 +176,13 @@ class QuotaTestCase(test.TestCase):
instance_type='m1.small',
image_id='fake',
metadata=metadata)
+
+ def test_allowed_file_injection_files(self):
+ self.assertEqual(
+ quota.allowed_file_injection_files(self.context),
+ FLAGS.quota_file_injection_max_files)
+
+ def test_allowed_file_injection_file_bytes(self):
+ self.assertEqual(
+ quota.allowed_file_injection_file_bytes(self.context),
+ FLAGS.quota_file_injection_max_file_bytes)