diff --git a/glanceclient/v1/images.py b/glanceclient/v1/images.py index 6227d66a..ede2d6a3 100644 --- a/glanceclient/v1/images.py +++ b/glanceclient/v1/images.py @@ -99,7 +99,7 @@ class ImageManager(base.Manager): for key in ['size', 'min_ram', 'min_disk']: if key in meta: try: - meta[key] = int(meta[key]) + meta[key] = int(meta[key]) if meta[key] else 0 except ValueError: pass return meta diff --git a/tests/v1/test_images.py b/tests/v1/test_images.py index cd92d3fe..f9489d0c 100644 --- a/tests/v1/test_images.py +++ b/tests/v1/test_images.py @@ -358,6 +358,32 @@ fixtures = { 'ZZZ', ), }, + '/v1/images/v2_created_img': { + 'PUT': ( + {}, + json.dumps({ + "image": { + "status": "queued", + "deleted": False, + "container_format": "bare", + "min_ram": 0, + "updated_at": "2013-12-20T01:51:45", + "owner": "foo", + "min_disk": 0, + "is_public": False, + "deleted_at": None, + "id": "v2_created_img", + "size": None, + "name": "bar", + "checksum": None, + "created_at": "2013-12-20T01:50:38", + "disk_format": "qcow2", + "properties": {}, + "protected": False + } + }) + ), + }, } @@ -651,6 +677,26 @@ class ImageManagerTest(testtools.TestCase): self.assertEqual(image_list[3].id, 'c') self.assertEqual(len(image_list), 4) + def test_update_v2_created_image_using_v1(self): + fields_to_update = { + 'name': 'bar', + 'container_format': 'bare', + 'disk_format': 'qcow2', + } + image = self.mgr.update('v2_created_img', **fields_to_update) + expect_hdrs = { + 'x-image-meta-name': 'bar', + 'x-image-meta-container_format': 'bare', + 'x-image-meta-disk_format': 'qcow2', + } + expect = [('PUT', '/v1/images/v2_created_img', expect_hdrs, None)] + self.assertEqual(self.api.calls, expect) + self.assertEqual(image.id, 'v2_created_img') + self.assertEqual(image.name, 'bar') + self.assertEqual(image.size, 0) + self.assertEqual(image.container_format, 'bare') + self.assertEqual(image.disk_format, 'qcow2') + class ImageTest(testtools.TestCase): def setUp(self):