summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Santa Barbara <justin@fathomdb.com>2013-07-18 18:38:34 -0700
committerJustin Santa Barbara <justin@fathomdb.com>2013-08-07 11:17:01 -0700
commitf629692917b0411850f709998beedf7dcc36c4a1 (patch)
treef0d071e53da6c9a58809a38e1088777401114524
parent46ce8655066508fb8f701cb2f2e9642c879a34f1 (diff)
downloadpython-glanceclient-f629692917b0411850f709998beedf7dcc36c4a1.tar.gz
Cast image_id to string before calling urllib.quote
We can't pass a string in; see Bug #1178233 Change-Id: I040c667e122d792fdcb47ee172463339068af48c
-rw-r--r--glanceclient/v1/images.py4
-rw-r--r--tests/v1/test_images.py11
2 files changed, 13 insertions, 2 deletions
diff --git a/glanceclient/v1/images.py b/glanceclient/v1/images.py
index 05d687c..e9fe840 100644
--- a/glanceclient/v1/images.py
+++ b/glanceclient/v1/images.py
@@ -113,7 +113,7 @@ class ImageManager(base.Manager):
image_id = base.getid(image)
resp, body = self.api.raw_request('HEAD', '/v1/images/%s'
- % urllib.quote(image_id))
+ % urllib.quote(str(image_id)))
meta = self._image_meta_from_headers(dict(resp.getheaders()))
return Image(self, meta)
@@ -126,7 +126,7 @@ class ImageManager(base.Manager):
"""
image_id = base.getid(image)
resp, body = self.api.raw_request('GET', '/v1/images/%s'
- % urllib.quote(image_id))
+ % urllib.quote(str(image_id)))
checksum = resp.getheader('x-image-meta-checksum', None)
if do_checksum and checksum is not None:
return utils.integrity_iter(body, checksum)
diff --git a/tests/v1/test_images.py b/tests/v1/test_images.py
index 708d380..9ce0bec 100644
--- a/tests/v1/test_images.py
+++ b/tests/v1/test_images.py
@@ -314,6 +314,17 @@ class ImageManagerTest(testtools.TestCase):
self.assertEqual(image.deleted, False)
self.assertEqual(image.properties, {u'arch': u'x86_64'})
+ def test_get_int(self):
+ image = self.mgr.get(1)
+ expect = [('HEAD', '/v1/images/1', {}, None)]
+ self.assertEqual(self.api.calls, expect)
+ self.assertEqual(image.id, '1')
+ self.assertEqual(image.name, 'image-1')
+ self.assertEqual(image.is_public, False)
+ self.assertEqual(image.protected, False)
+ self.assertEqual(image.deleted, False)
+ self.assertEqual(image.properties, {u'arch': u'x86_64'})
+
def test_get_encoding(self):
image = self.mgr.get('3')
expect = [('HEAD', '/v1/images/3', {}, None)]