summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Pokorny <Brad_Pokorny@symantec.com>2015-06-15 13:00:17 -0700
committerBrad Pokorny <Brad_Pokorny@symantec.com>2015-06-19 15:03:37 -0700
commitea01f13be21f0243711bc8eef6d84ecba39d7164 (patch)
tree6be8fc2f519c43251f32ba9fe9d3884189d0a46f
parent0d22e821f9df4247e16a115f8b486d9bdd68eea1 (diff)
downloadpython-glanceclient-ea01f13be21f0243711bc8eef6d84ecba39d7164.tar.gz
Add v2 support for the marker attribute
The v2 Glance client implementation ignores the marker attribute if it's passed to the client as part of the kwargs. Include support for the attribute, as the v1 client supports it and it makes it easier to work with the Glance client. Change-Id: Ifaa59129bc4178212b890ea591673cb154e0f110 Closes-bug: 1465373
-rw-r--r--glanceclient/tests/unit/v2/test_images.py6
-rw-r--r--glanceclient/v2/images.py3
2 files changed, 9 insertions, 0 deletions
diff --git a/glanceclient/tests/unit/v2/test_images.py b/glanceclient/tests/unit/v2/test_images.py
index 26ee792..7260f47 100644
--- a/glanceclient/tests/unit/v2/test_images.py
+++ b/glanceclient/tests/unit/v2/test_images.py
@@ -555,6 +555,12 @@ class TestController(testtools.TestCase):
self.assertEqual('image-3', images[2].name)
self.assertEqual(3, len(images))
+ def test_list_images_with_marker(self):
+ images = list(self.controller.list(limit=1,
+ marker='3a4560a1-e585-443e-9b39-553b46ec92d1'))
+ self.assertEqual('6f99bf80-2ee6-47cf-acfe-1f1fabb7e810', images[0].id)
+ self.assertEqual('image-2', images[0].name)
+
def test_list_images_visibility_public(self):
filters = {'filters': {'visibility': 'public'}}
images = list(self.controller.list(**filters))
diff --git a/glanceclient/v2/images.py b/glanceclient/v2/images.py
index 01ce40b..0cbd0d5 100644
--- a/glanceclient/v2/images.py
+++ b/glanceclient/v2/images.py
@@ -168,6 +168,9 @@ class Controller(object):
for dir in sort_dir:
url = '%s&sort_dir=%s' % (url, dir)
+ if isinstance(kwargs.get('marker'), six.string_types):
+ url = '%s&marker=%s' % (url, kwargs['marker'])
+
for image in paginate(url, page_size, limit):
yield image