From 9044733fb0aff698875080caf1ffd9e44470ec0e Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Thu, 23 Jun 2011 10:53:09 -0400 Subject: adding metadata container to /images/detail and /images/ calls --- nova/api/openstack/views/images.py | 3 +++ nova/tests/api/openstack/test_images.py | 45 +++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py index 2773c9c13..e7472b5cd 100644 --- a/nova/api/openstack/views/images.py +++ b/nova/api/openstack/views/images.py @@ -109,6 +109,9 @@ class ViewBuilderV11(ViewBuilder): image = ViewBuilder.build(self, image_obj, detail) href = self.generate_href(image_obj["id"]) + if detail: + image["metadata"] = image_obj.get("properties", {}) + image["links"] = [{ "rel": "self", "href": href, diff --git a/nova/tests/api/openstack/test_images.py b/nova/tests/api/openstack/test_images.py index e4204809f..6ec0f8712 100644 --- a/nova/tests/api/openstack/test_images.py +++ b/nova/tests/api/openstack/test_images.py @@ -393,20 +393,25 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): self.assertEqual(expected_image, actual_image) def test_get_image_v1_1(self): - request = webob.Request.blank('/v1.1/images/123') + request = webob.Request.blank('/v1.1/images/124') response = request.get_response(fakes.wsgi_app()) actual_image = json.loads(response.body) - href = "http://localhost/v1.1/images/123" + href = "http://localhost/v1.1/images/124" expected_image = { "image": { - "id": 123, - "name": "public image", + "id": 124, + "name": "queued backup", + "serverRef": "http://localhost/v1.1/servers/42", "updated": self.NOW_API_FORMAT, "created": self.NOW_API_FORMAT, - "status": "ACTIVE", + "status": "QUEUED", + "metadata": { + "instance_id": "42", + "user_id": "1", + }, "links": [{ "rel": "self", "href": href, @@ -465,20 +470,21 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): self.assertEqual(expected_image.toxml(), actual_image.toxml()) def test_get_image_v1_1_xml(self): - request = webob.Request.blank('/v1.1/images/123') + request = webob.Request.blank('/v1.1/images/124') request.accept = "application/xml" response = request.get_response(fakes.wsgi_app()) actual_image = minidom.parseString(response.body.replace(" ", "")) - expected_href = "http://localhost/v1.1/images/123" + expected_href = "http://localhost/v1.1/images/124" expected_now = self.NOW_API_FORMAT expected_image = minidom.parseString(""" - @@ -487,6 +493,14 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): + + + 42 + + + 1 + + """.replace(" ", "") % (locals())) @@ -668,6 +682,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): expected = [{ 'id': 123, 'name': 'public image', + 'metadata': {}, 'updated': self.NOW_API_FORMAT, 'created': self.NOW_API_FORMAT, 'status': 'ACTIVE', @@ -689,6 +704,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): { 'id': 124, 'name': 'queued backup', + 'metadata': {u'instance_id': u'42', u'user_id': u'1'}, 'serverRef': "http://localhost/v1.1/servers/42", 'updated': self.NOW_API_FORMAT, 'created': self.NOW_API_FORMAT, @@ -711,6 +727,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): { 'id': 125, 'name': 'saving backup', + 'metadata': {u'instance_id': u'42', u'user_id': u'1'}, 'serverRef': "http://localhost/v1.1/servers/42", 'updated': self.NOW_API_FORMAT, 'created': self.NOW_API_FORMAT, @@ -734,6 +751,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): { 'id': 126, 'name': 'active backup', + 'metadata': {u'instance_id': u'42', u'user_id': u'1'}, 'serverRef': "http://localhost/v1.1/servers/42", 'updated': self.NOW_API_FORMAT, 'created': self.NOW_API_FORMAT, @@ -756,6 +774,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): { 'id': 127, 'name': 'killed backup', + 'metadata': {u'instance_id': u'42', u'user_id': u'1'}, 'serverRef': "http://localhost/v1.1/servers/42", 'updated': self.NOW_API_FORMAT, 'created': self.NOW_API_FORMAT, @@ -778,6 +797,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): { 'id': 129, 'name': None, + 'metadata': {}, 'updated': self.NOW_API_FORMAT, 'created': self.NOW_API_FORMAT, 'status': 'ACTIVE', @@ -1030,6 +1050,11 @@ class ImageControllerWithGlanceServiceTest(test.TestCase): + + + 123 + + """.replace(" ", "") % (locals())) -- cgit