Add sort_dir/key to flavor list

'marker' and 'limit' are already added to flavor list, but 'sort_key'
and 'sort_dir' which are useful for pagination are missing.

Closes-bug: #1505939
Change-Id: Id78595f15fbb289133092a32238238e3c4a9d0a0
This commit is contained in:
liyingjun 2015-10-14 15:53:46 +08:00
parent 03f1f67ccd
commit 986ed2ae0b
2 changed files with 13 additions and 1 deletions

View File

@ -49,6 +49,11 @@ class FlavorsTest(utils.TestCase):
self.cs.flavors.list(marker=1234, limit=4)
self.cs.assert_called('GET', '/flavors/detail?limit=4&marker=1234')
def test_list_flavors_with_sort_key_dir(self):
self.cs.flavors.list(sort_key='id', sort_dir='asc')
self.cs.assert_called('GET',
'/flavors/detail?sort_dir=asc&sort_key=id')
def test_list_flavors_is_public_none(self):
fl = self.cs.flavors.list(is_public=None)
self.cs.assert_called('GET', '/flavors/detail?is_public=None')

View File

@ -93,7 +93,8 @@ class FlavorManager(base.ManagerWithFind):
resource_class = Flavor
is_alphanum_id_allowed = True
def list(self, detailed=True, is_public=True, marker=None, limit=None):
def list(self, detailed=True, is_public=True, marker=None, limit=None,
sort_key=None, sort_dir=None):
"""
Get a list of all flavors.
@ -101,6 +102,8 @@ class FlavorManager(base.ManagerWithFind):
:param limit: maximum number of flavors to return (optional).
:param marker: Begin returning flavors that appear later in the flavor
list than that represented by this flavor id (optional).
:param sort_key: Flavors list sort key (optional).
:param sort_dir: Flavors list sort direction (optional).
"""
qparams = {}
# is_public is ternary - None means give all flavors.
@ -110,6 +113,10 @@ class FlavorManager(base.ManagerWithFind):
qparams['marker'] = str(marker)
if limit:
qparams['limit'] = int(limit)
if sort_key:
qparams['sort_key'] = str(sort_key)
if sort_dir:
qparams['sort_dir'] = str(sort_dir)
if not is_public:
qparams['is_public'] = is_public
qparams = sorted(qparams.items(), key=lambda x: x[0])