diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-03-29 17:46:08 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-03-29 17:46:08 +0000 |
| commit | 95f980c4f9563b4822c065549335c1f3020dd54e (patch) | |
| tree | 2fdf59fa214ce757270c5e6cd221ca6d805af794 /nova/api | |
| parent | f2e822cc312b216eeab4db5bda3a73bbf9e1710e (diff) | |
| parent | 497502cbf833d063c964975448dfacd0e1db2ef4 (diff) | |
Merge "Fix marker behavior for flavors"
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/common.py | 6 | ||||
| -rw-r--r-- | nova/api/openstack/compute/flavors.py | 13 |
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(): |
