From 3344eac545dc9224dca49fa937e727666f7cee2d Mon Sep 17 00:00:00 2001 From: Gabriel Hurley Date: Thu, 12 Apr 2012 16:35:36 -0700 Subject: [PATCH] Adds filter support to images.list(). This existed in glance.client, and should exist in the new client as well! :-) Change-Id: Iea8c55fcb0f0d30d6dc138072354c3f20d1288cf --- AUTHORS | 1 + glanceclient/v1/images.py | 4 +++- tests/v1/test_images.py | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index e6d717c..b0eb421 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,3 +2,4 @@ Brian Waldon Jay Pipes Monty Taylor Dean Troyer +Gabriel Hurley diff --git a/glanceclient/v1/images.py b/glanceclient/v1/images.py index 34f36ad..2179f9d 100644 --- a/glanceclient/v1/images.py +++ b/glanceclient/v1/images.py @@ -71,7 +71,7 @@ class ImageManager(base.Manager): meta = self._image_meta_from_headers(resp) return Image(self, meta) - def list(self, limit=None, marker=None): + def list(self, limit=None, marker=None, filters=None): """Get a list of images. :param limit: maximum number of images to return. Used for pagination. @@ -83,6 +83,8 @@ class ImageManager(base.Manager): params['limit'] = int(limit) if marker: params['marker'] = marker + if filters: + params.update(filters) query = '?%s' % urllib.urlencode(params) if params else '' return self._list('/v1/images/detail%s' % query, "images") diff --git a/tests/v1/test_images.py b/tests/v1/test_images.py index dcec755..4e9436e 100644 --- a/tests/v1/test_images.py +++ b/tests/v1/test_images.py @@ -32,6 +32,11 @@ class ImageManagerTest(unittest.TestCase): expect = [('GET', '/v1/images/detail?marker=20', {}, None)] self.assertEqual(self.api.calls, expect) + def test_list_with_filter(self): + self.mgr.list(filters={'name': "foo"}) + expect = [('GET', '/v1/images/detail?name=foo', {}, None)] + self.assertEqual(self.api.calls, expect) + def test_get(self): image = self.mgr.get('1') expect = [('HEAD', '/v1/images/1', {}, None)]