Hook up GET /v1/images/<id>
This allows us to get raw image data out of the API! Related to bp glance-client-parity Change-Id: Id5f55553d2ff3b7bf58515062afdfd4b9b183a54
This commit is contained in:
@@ -38,6 +38,9 @@ class Image(base.Resource):
|
||||
def delete(self):
|
||||
return self.manager.delete(self)
|
||||
|
||||
def data(self):
|
||||
return self.manager.data(self)
|
||||
|
||||
|
||||
class ImageManager(base.Manager):
|
||||
resource_class = Image
|
||||
@@ -72,6 +75,16 @@ class ImageManager(base.Manager):
|
||||
meta = self._image_meta_from_headers(resp)
|
||||
return Image(self, meta)
|
||||
|
||||
def data(self, image):
|
||||
"""Get the raw data for a specific image.
|
||||
|
||||
:param image: image object or id to look up
|
||||
:rtype: iterable containing image data
|
||||
"""
|
||||
image_id = base.getid(image)
|
||||
resp, body = self.api.raw_request('GET', '/v1/images/%s' % image_id)
|
||||
return body
|
||||
|
||||
def list(self, limit=None, marker=None, filters=None):
|
||||
"""Get a list of images.
|
||||
|
||||
|
@@ -62,6 +62,10 @@ fixtures = {
|
||||
'x-image-meta-property-arch': 'x86_64',
|
||||
},
|
||||
None),
|
||||
'GET': (
|
||||
{},
|
||||
'XXX',
|
||||
),
|
||||
'PUT': (
|
||||
{},
|
||||
json.dumps(
|
||||
@@ -121,6 +125,12 @@ class ImageManagerTest(unittest.TestCase):
|
||||
self.assertEqual(image.id, '1')
|
||||
self.assertEqual(image.name, 'image-1')
|
||||
|
||||
def test_data(self):
|
||||
data = self.mgr.data('1')
|
||||
expect = [('GET', '/v1/images/1', {}, None)]
|
||||
self.assertEqual(self.api.calls, expect)
|
||||
self.assertEqual(data, 'XXX')
|
||||
|
||||
def test_delete(self):
|
||||
self.mgr.delete('1')
|
||||
expect = [('DELETE', '/v1/images/1', {}, None)]
|
||||
@@ -232,3 +242,13 @@ class ImageTest(unittest.TestCase):
|
||||
('PUT', '/v1/images/1', {'x-image-meta-name': 'image-5'}, None),
|
||||
]
|
||||
self.assertEqual(self.api.calls, expect)
|
||||
|
||||
def test_data(self):
|
||||
image = self.mgr.get('1')
|
||||
data = image.data()
|
||||
expect = [
|
||||
('HEAD', '/v1/images/1', {}, None),
|
||||
('GET', '/v1/images/1', {}, None),
|
||||
]
|
||||
self.assertEqual(self.api.calls, expect)
|
||||
self.assertEqual(data, 'XXX')
|
||||
|
Reference in New Issue
Block a user