summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-03-29 17:46:08 +0000
committerGerrit Code Review <review@openstack.org>2012-03-29 17:46:08 +0000
commit95f980c4f9563b4822c065549335c1f3020dd54e (patch)
tree2fdf59fa214ce757270c5e6cd221ca6d805af794 /nova/api
parentf2e822cc312b216eeab4db5bda3a73bbf9e1710e (diff)
parent497502cbf833d063c964975448dfacd0e1db2ef4 (diff)
Merge "Fix marker behavior for flavors"
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/common.py6
-rw-r--r--nova/api/openstack/compute/flavors.py13
2 files changed, 13 insertions, 6 deletions
diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py
index 040e8be00..0d419f205 100644
--- a/nova/api/openstack/common.py
+++ b/nova/api/openstack/common.py
@@ -192,7 +192,11 @@ def limited_by_marker(items, request, max_limit=FLAGS.osapi_max_limit):
if marker:
start_index = -1
for i, item in enumerate(items):
- if item['id'] == marker or item.get('uuid') == marker:
+ if 'flavorid' in item:
+ if item['flavorid'] == marker:
+ start_index = i + 1
+ break
+ elif item['id'] == marker or item.get('uuid') == marker:
start_index = i + 1
break
if start_index < 0:
diff --git a/nova/api/openstack/compute/flavors.py b/nova/api/openstack/compute/flavors.py
index 99f6f44d8..8c159c586 100644
--- a/nova/api/openstack/compute/flavors.py
+++ b/nova/api/openstack/compute/flavors.py
@@ -73,15 +73,13 @@ class Controller(wsgi.Controller):
def index(self, req):
"""Return all flavors in brief."""
flavors = self._get_flavors(req)
- limited_flavors = common.limited_by_marker(flavors.values(), req)
- return self._view_builder.index(req, limited_flavors)
+ return self._view_builder.index(req, flavors)
@wsgi.serializers(xml=FlavorsTemplate)
def detail(self, req):
"""Return all flavors in detail."""
flavors = self._get_flavors(req)
- limited_flavors = common.limited_by_marker(flavors.values(), req)
- return self._view_builder.detail(req, limited_flavors)
+ return self._view_builder.detail(req, flavors)
@wsgi.serializers(xml=FlavorTemplate)
def show(self, req, id):
@@ -108,7 +106,12 @@ class Controller(wsgi.Controller):
except ValueError:
pass # ignore bogus values per spec
- return instance_types.get_all_types(filters=filters)
+ flavors = instance_types.get_all_types(filters=filters)
+ flavors_list = flavors.values()
+ sorted_flavors = sorted(flavors_list,
+ key=lambda item: item['flavorid'])
+ limited_flavors = common.limited_by_marker(sorted_flavors, req)
+ return limited_flavors
def create_resource():