summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJosh Kearney <josh@jk0.org>2011-09-21 18:27:23 +0000
committerTarmac <>2011-09-21 18:27:23 +0000
commit14068bc8f748ee3bee3c5b86ac19cd21b0ff8b67 (patch)
treec0d87fd5a575ef80227ccd35e75e73f9c74827ba /nova/api
parent7e3bebbe8e911851a7398b8d5ad81afb421dfd62 (diff)
parent10589faa5fbde09689641d5e64ddd41a341eaade (diff)
downloadnova-14068bc8f748ee3bee3c5b86ac19cd21b0ff8b67.tar.gz
nova-14068bc8f748ee3bee3c5b86ac19cd21b0ff8b67.tar.xz
nova-14068bc8f748ee3bee3c5b86ac19cd21b0ff8b67.zip
Adds an 'alternate' link to image views per 3.10 and 3.11 of http://docs.openstack.org/cactus/openstack-compute/developer/openstack-compute-api-1.1/content/LinksReferences.html
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/images.py2
-rw-r--r--nova/api/openstack/views/images.py16
2 files changed, 17 insertions, 1 deletions
diff --git a/nova/api/openstack/images.py b/nova/api/openstack/images.py
index 4340cbe3e..d579ae716 100644
--- a/nova/api/openstack/images.py
+++ b/nova/api/openstack/images.py
@@ -251,6 +251,8 @@ class ImageXMLSerializer(wsgi.XMLDictSerializer):
elem = etree.SubElement(image_elem,
'{%s}link' % xmlutil.XMLNS_ATOM)
elem.set('rel', link['rel'])
+ if 'type' in link:
+ elem.set('type', link['type'])
elem.set('href', link['href'])
return image_elem
diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py
index 86e8d7f3a..659bfd463 100644
--- a/nova/api/openstack/views/images.py
+++ b/nova/api/openstack/views/images.py
@@ -18,6 +18,7 @@
import os.path
from nova.api.openstack import common
+from nova import utils
class ViewBuilder(object):
@@ -139,6 +140,7 @@ class ViewBuilderV11(ViewBuilder):
image = ViewBuilder.build(self, image_obj, detail)
href = self.generate_href(image_obj["id"])
bookmark = self.generate_bookmark(image_obj["id"])
+ alternate = self.generate_alternate(image_obj["id"])
image["links"] = [
{
@@ -149,6 +151,11 @@ class ViewBuilderV11(ViewBuilder):
"rel": "bookmark",
"href": bookmark,
},
+ {
+ "rel": "alternate",
+ "type": "application/vnd.openstack.image",
+ "href": alternate,
+ },
]
@@ -158,6 +165,13 @@ class ViewBuilderV11(ViewBuilder):
return image
def generate_bookmark(self, image_id):
- """Create an url that refers to a specific flavor id."""
+ """Create a URL that refers to a specific flavor id."""
return os.path.join(common.remove_version_from_href(self.base_url),
self.project_id, "images", str(image_id))
+
+ def generate_alternate(self, image_id):
+ """Create an alternate link for a specific flavor id."""
+ glance_url = utils.generate_glance_url()
+
+ return "%s/%s/images/%s" % (glance_url, self.project_id,
+ str(image_id))