diff options
| author | Josh Kearney <josh@jk0.org> | 2011-09-21 18:27:23 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-09-21 18:27:23 +0000 |
| commit | 14068bc8f748ee3bee3c5b86ac19cd21b0ff8b67 (patch) | |
| tree | c0d87fd5a575ef80227ccd35e75e73f9c74827ba /nova/api | |
| parent | 7e3bebbe8e911851a7398b8d5ad81afb421dfd62 (diff) | |
| parent | 10589faa5fbde09689641d5e64ddd41a341eaade (diff) | |
| download | nova-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.py | 2 | ||||
| -rw-r--r-- | nova/api/openstack/views/images.py | 16 |
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)) |
