summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Meade <alex.meade@rackspace.com>2011-06-30 11:29:45 -0400
committerAlex Meade <alex.meade@rackspace.com>2011-06-30 11:29:45 -0400
commit386e2a28f2d92dea30a726722b49e97e1c7ebba7 (patch)
treeed2c7e1245e287ac22c1548cdfa17948faa679f5
parent5f772ea10c22549a7149f608cfc2ff932878d6fe (diff)
downloadnova-386e2a28f2d92dea30a726722b49e97e1c7ebba7.tar.gz
nova-386e2a28f2d92dea30a726722b49e97e1c7ebba7.tar.xz
nova-386e2a28f2d92dea30a726722b49e97e1c7ebba7.zip
updated images
-rw-r--r--nova/api/openstack/views/images.py17
-rw-r--r--nova/tests/api/openstack/test_images.py78
2 files changed, 24 insertions, 71 deletions
diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py
index d6a054102..175bcb109 100644
--- a/nova/api/openstack/views/images.py
+++ b/nova/api/openstack/views/images.py
@@ -104,6 +104,7 @@ class ViewBuilderV11(ViewBuilder):
"""Return a standardized image structure for display by the API."""
image = ViewBuilder.build(self, image_obj, detail)
href = self.generate_href(image_obj["id"])
+ bookmark = self.generate_bookmark(image_obj["id"])
image["links"] = [{
"rel": "self",
@@ -111,13 +112,15 @@ class ViewBuilderV11(ViewBuilder):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": href,
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": href,
+ "href": bookmark,
}]
return image
+
+ def generate_bookmark(self, image_id):
+ """Create an url that refers to a specific flavor id."""
+ return os.path.join(self._remove_version(self._url),
+ "images", str(image_id))
+
+ def _remove_version(self, base_url):
+ return base_url.rsplit('/', 1).pop(0)
diff --git a/nova/tests/api/openstack/test_images.py b/nova/tests/api/openstack/test_images.py
index e11e1c046..b864ae9f4 100644
--- a/nova/tests/api/openstack/test_images.py
+++ b/nova/tests/api/openstack/test_images.py
@@ -400,6 +400,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
actual_image = json.loads(response.body)
href = "http://localhost/v1.1/images/123"
+ bookmark = "http://localhost/images/123"
expected_image = {
"image": {
@@ -414,13 +415,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": href,
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": href,
+ "href": bookmark,
}],
},
}
@@ -473,6 +468,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
actual_image = minidom.parseString(response.body.replace(" ", ""))
expected_href = "http://localhost/v1.1/images/123"
+ expected_bookmark = "http://localhost/images/123"
expected_now = self.NOW_API_FORMAT
expected_image = minidom.parseString("""
<image id="123"
@@ -483,10 +479,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
xmlns="http://docs.openstack.org/compute/api/v1.1">
<links>
<link href="%(expected_href)s" rel="self"/>
- <link href="%(expected_href)s" rel="bookmark"
- type="application/json" />
- <link href="%(expected_href)s" rel="bookmark"
- type="application/xml" />
+ <link href="%(expected_bookmark)s" rel="bookmark"/>
</links>
</image>
""".replace(" ", "") % (locals()))
@@ -580,22 +573,17 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
continue
href = "http://localhost/v1.1/images/%s" % image["id"]
+ bookmark = "http://localhost/images/%s" % image["id"]
test_image = {
"id": image["id"],
"name": image["name"],
"links": [{
"rel": "self",
- "href": "http://localhost/v1.1/images/%s" % image["id"],
- },
- {
- "rel": "bookmark",
- "type": "application/json",
"href": href,
},
{
"rel": "bookmark",
- "type": "application/xml",
- "href": href,
+ "href": bookmark,
}],
}
self.assertTrue(test_image in response_list)
@@ -674,13 +662,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": "http://localhost/v1.1/images/123",
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": "http://localhost/v1.1/images/123",
+ "href": "http://localhost/images/123",
}],
},
{
@@ -696,13 +678,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": "http://localhost/v1.1/images/124",
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": "http://localhost/v1.1/images/124",
+ "href": "http://localhost/images/124",
}],
},
{
@@ -719,13 +695,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": "http://localhost/v1.1/images/125",
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": "http://localhost/v1.1/images/125",
+ "href": "http://localhost/images/125",
}],
},
{
@@ -741,13 +711,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": "http://localhost/v1.1/images/126",
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": "http://localhost/v1.1/images/126",
+ "href": "http://localhost/images/126",
}],
},
{
@@ -763,13 +727,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": "http://localhost/v1.1/images/127",
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": "http://localhost/v1.1/images/127",
+ "href": "http://localhost/images/127",
}],
},
{
@@ -784,13 +742,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
},
{
"rel": "bookmark",
- "type": "application/json",
- "href": "http://localhost/v1.1/images/129",
- },
- {
- "rel": "bookmark",
- "type": "application/xml",
- "href": "http://localhost/v1.1/images/129",
+ "href": "http://localhost/images/129",
}],
},
]
@@ -1120,6 +1072,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
self.assertEqual(200, response.status_int)
resp_xml = minidom.parseString(response.body.replace(" ", ""))
expected_href = "http://localhost/v1.1/images/123"
+ expected_bookmark = "http://localhost/images/123"
expected_image = minidom.parseString("""
<image
created="None"
@@ -1131,10 +1084,7 @@ class ImageControllerWithGlanceServiceTest(test.TestCase):
xmlns="http://docs.openstack.org/compute/api/v1.1">
<links>
<link href="%(expected_href)s" rel="self"/>
- <link href="%(expected_href)s" rel="bookmark"
- type="application/json" />
- <link href="%(expected_href)s" rel="bookmark"
- type="application/xml" />
+ <link href="%(expected_bookmark)s" rel="bookmark"/>
</links>
</image>
""".replace(" ", "") % (locals()))