From 13e346df0bc88279242ed1c56ad39b36a22c8a39 Mon Sep 17 00:00:00 2001 From: Josh Kearney Date: Tue, 20 Sep 2011 13:56:15 -0500 Subject: Refactored alternate link generation. --- nova/api/openstack/views/images.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'nova/api') diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py index 86e8d7f3a..c41123f5e 100644 --- a/nova/api/openstack/views/images.py +++ b/nova/api/openstack/views/images.py @@ -18,6 +18,10 @@ import os.path from nova.api.openstack import common +from nova import flags + + +FLAGS = flags.FLAGS class ViewBuilder(object): @@ -139,6 +143,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 +154,11 @@ class ViewBuilderV11(ViewBuilder): "rel": "bookmark", "href": bookmark, }, + { + "rel": "alternate", + "type": "application/vnd.openstack.image", + "href": alternate, + }, ] @@ -158,6 +168,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.""" + # TODO(jk0): This will eventually need to take SSL into consideration + # when supported in glance. + return "http://%s:%d/%s/images/%s" % (FLAGS.glance_host, + FLAGS.glance_port, self.project_id, str(image_id)) -- cgit From c07b24cdd6606950b0a4fef730c277b499eb65f4 Mon Sep 17 00:00:00 2001 From: Josh Kearney Date: Tue, 20 Sep 2011 15:21:06 -0500 Subject: Fixed unit tests with some minor refactoring. --- nova/api/openstack/views/images.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'nova/api') diff --git a/nova/api/openstack/views/images.py b/nova/api/openstack/views/images.py index c41123f5e..659bfd463 100644 --- a/nova/api/openstack/views/images.py +++ b/nova/api/openstack/views/images.py @@ -18,10 +18,7 @@ import os.path from nova.api.openstack import common -from nova import flags - - -FLAGS = flags.FLAGS +from nova import utils class ViewBuilder(object): @@ -174,7 +171,7 @@ class ViewBuilderV11(ViewBuilder): def generate_alternate(self, image_id): """Create an alternate link for a specific flavor id.""" - # TODO(jk0): This will eventually need to take SSL into consideration - # when supported in glance. - return "http://%s:%d/%s/images/%s" % (FLAGS.glance_host, - FLAGS.glance_port, self.project_id, str(image_id)) + glance_url = utils.generate_glance_url() + + return "%s/%s/images/%s" % (glance_url, self.project_id, + str(image_id)) -- cgit From 10589faa5fbde09689641d5e64ddd41a341eaade Mon Sep 17 00:00:00 2001 From: Josh Kearney Date: Tue, 20 Sep 2011 16:11:49 -0500 Subject: Include 'type' in XML output. --- nova/api/openstack/images.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'nova/api') 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 -- cgit