summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2011-05-18 13:54:51 -0400
committerMark Washenberger <mark.washenberger@rackspace.com>2011-05-18 13:54:51 -0400
commit156ebab6599f9500d8b98c7cc1271d2502fa0627 (patch)
treed9a5d73bfb2bde8f25046bf5e17fdf7fbe717b19 /nova/api
parent6069e6f50b10358c718961ceac9790f56d6692ea (diff)
get real absolute limits in openstack api and verify absolute limit responses
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/limits.py11
-rw-r--r--nova/api/openstack/views/limits.py23
2 files changed, 12 insertions, 22 deletions
diff --git a/nova/api/openstack/limits.py b/nova/api/openstack/limits.py
index 5e3f93f79..1411cec01 100644
--- a/nova/api/openstack/limits.py
+++ b/nova/api/openstack/limits.py
@@ -30,6 +30,7 @@ from collections import defaultdict
from webob.dec import wsgify
+from nova import quota
from nova import wsgi
from nova.api.openstack import common
from nova.api.openstack import faults
@@ -42,9 +43,6 @@ PER_MINUTE = 60
PER_HOUR = 60 * 60
PER_DAY = 60 * 60 * 24
-#TODO remove when mark catches up
-TEST_ABSOLUTE_LIMITS = {}
-
class LimitsController(common.OpenstackController):
"""
@@ -67,11 +65,8 @@ class LimitsController(common.OpenstackController):
"""
Return all global and rate limit information.
"""
- # TODO(alex.meade) make this work
- #project_quota = quota.get_project_quota(...)
- #abs_limits = project_quota.limits
- #TODO remove when mark catches up
- abs_limits = TEST_ABSOLUTE_LIMITS
+ context = req.environ['nova.context']
+ abs_limits = quota.get_quota(context, context.project_id)
rate_limits = req.environ.get("nova.limits", [])
builder = self._get_view_builder(req)
diff --git a/nova/api/openstack/views/limits.py b/nova/api/openstack/views/limits.py
index ef1243f3d..464f91e33 100644
--- a/nova/api/openstack/views/limits.py
+++ b/nova/api/openstack/views/limits.py
@@ -112,19 +112,14 @@ class ViewBuilderV11(ViewBuilder):
For example: {"ram": 512, "gigabytes": 1024}.
"""
+ limit_names = {
+ "ram": "maxTotalRAMSize",
+ "instances": "maxTotalInstances",
+ "cores": "maxTotalCores",
+ "metadata_items": "maxServerMeta",
+ }
limits = {}
- #loops through absolute limits and their values
- for absolute_limit_key, absolute_limit_value \
- in absolute_limits.items():
-
- _abs_limit_map = {
- "ram": "maxTotalRAMSize",
- "instances": "maxTotalInstances",
- "cores": "maxTotalCores",
- }
-
- if not absolute_limit_value is None:
- limits[_abs_limit_map[absolute_limit_key]] \
- = absolute_limit_value
-
+ for name, value in absolute_limits.iteritems():
+ if name in limit_names and value is not None:
+ limits[limit_names[name]] = value
return limits