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)]