summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorAlex Meade <alex.meade@rackspace.com>2011-05-17 15:14:52 -0400
committerAlex Meade <alex.meade@rackspace.com>2011-05-17 15:14:52 -0400
commit7ab16489276daa2ec6f51fea6ec24cc0c46a8e14 (patch)
tree41aaad6b1fc0230515f13ef39d4679b2285efa3c /nova/api
parent6fc708b463e47de560fe388ada0639eb2b2383d5 (diff)
downloadnova-7ab16489276daa2ec6f51fea6ec24cc0c46a8e14.tar.gz
nova-7ab16489276daa2ec6f51fea6ec24cc0c46a8e14.tar.xz
nova-7ab16489276daa2ec6f51fea6ec24cc0c46a8e14.zip
Changed builder to match specs and added test
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/limits.py9
-rw-r--r--nova/api/openstack/views/limits.py24
2 files changed, 16 insertions, 17 deletions
diff --git a/nova/api/openstack/limits.py b/nova/api/openstack/limits.py
index cf96b1bce..e383b5efc 100644
--- a/nova/api/openstack/limits.py
+++ b/nova/api/openstack/limits.py
@@ -42,6 +42,9 @@ 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):
"""
@@ -53,7 +56,8 @@ class LimitsController(common.OpenstackController):
"attributes": {
"limit": ["verb", "URI", "uri", "regex", "value", "unit",
"resetTime", "next-available", "remaining", "name"],
- "absolute_limit": ["limit", "value"],
+ "absolute_limit": ["maxTotalRAMSize", "maxTotalInstances",
+ "maxTotalCores"],
},
"plurals": {
"rate": "limit",
@@ -69,7 +73,8 @@ class LimitsController(common.OpenstackController):
# TODO(alex.meade) make this work
#project_quota = quota.get_project_quota(...)
#abs_limits = project_quota.limits
- abs_limits = {}
+ #TODO remove when mark catches up
+ abs_limits = TEST_ABSOLUTE_LIMITS
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 7fae2d166..ef1243f3d 100644
--- a/nova/api/openstack/views/limits.py
+++ b/nova/api/openstack/views/limits.py
@@ -112,25 +112,19 @@ class ViewBuilderV11(ViewBuilder):
For example: {"ram": 512, "gigabytes": 1024}.
"""
- limits = []
+ limits = {}
#loops through absolute limits and their values
for absolute_limit_key, absolute_limit_value \
in absolute_limits.items():
- _abs_limit = None
- # check for existing key
- for limit in limits:
- if limit["limit"] == absolute_limit_key:
- _abs_limit = limit
- break
-
- # ensure we have a key if we didn't find one
- if not _abs_limit:
- _abs_limit = {
- "limit": absolute_limit_key,
- "value": absolute_limit_value,
- }
+ _abs_limit_map = {
+ "ram": "maxTotalRAMSize",
+ "instances": "maxTotalInstances",
+ "cores": "maxTotalCores",
+ }
- limits.append(_abs_limit)
+ if not absolute_limit_value is None:
+ limits[_abs_limit_map[absolute_limit_key]] \
+ = absolute_limit_value
return limits