From ad087405f1874259f9ac9ce34402ab3c6458a411 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Mon, 20 Aug 2012 16:14:09 -0700 Subject: Returns hypervisor_hostname in xml of extension The extended_server_attributes extension returns hypervisor_hostname in json output, but it was inadvertently omitted from xml. This makes the output consistent between the two. Tests included. Fixes bug 1039276 Change-Id: Ib8cd71cd5bfb65785a02085061fea5e515a0568c --- nova/api/openstack/compute/contrib/extended_server_attributes.py | 2 ++ .../openstack/compute/contrib/test_extended_server_attributes.py | 8 ++++++++ .../integrated/api_samples/all_extensions/server-get-resp.xml | 4 ++-- .../integrated/api_samples/all_extensions/server-get-resp.xml.tpl | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/nova/api/openstack/compute/contrib/extended_server_attributes.py b/nova/api/openstack/compute/contrib/extended_server_attributes.py index f1ec9b956..6ca10559f 100644 --- a/nova/api/openstack/compute/contrib/extended_server_attributes.py +++ b/nova/api/openstack/compute/contrib/extended_server_attributes.py @@ -102,6 +102,8 @@ def make_server(elem): '%s:instance_name' % Extended_server_attributes.alias) elem.set('{%s}host' % Extended_server_attributes.namespace, '%s:host' % Extended_server_attributes.alias) + elem.set('{%s}hypervisor_hostname' % Extended_server_attributes.namespace, + '%s:hypervisor_hostname' % Extended_server_attributes.alias) class ExtendedServerAttributeTemplate(xmlutil.TemplateBuilder): diff --git a/nova/tests/api/openstack/compute/contrib/test_extended_server_attributes.py b/nova/tests/api/openstack/compute/contrib/test_extended_server_attributes.py index d50749060..66a2ac5db 100644 --- a/nova/tests/api/openstack/compute/contrib/test_extended_server_attributes.py +++ b/nova/tests/api/openstack/compute/contrib/test_extended_server_attributes.py @@ -18,6 +18,7 @@ import webob from nova.api.openstack.compute.contrib import extended_server_attributes from nova import compute +from nova import db from nova import exception from nova import flags from nova.openstack.common import jsonutils @@ -44,6 +45,10 @@ def fake_compute_get_all(*args, **kwargs): ] +def fake_cn_get(context, host): + return {"hypervisor_hostname": host} + + class ExtendedServerAttributesTest(test.TestCase): content_type = 'application/json' prefix = 'OS-EXT-SRV-ATTR:' @@ -53,6 +58,7 @@ class ExtendedServerAttributesTest(test.TestCase): fakes.stub_out_nw_api(self.stubs) self.stubs.Set(compute.api.API, 'get', fake_compute_get) self.stubs.Set(compute.api.API, 'get_all', fake_compute_get_all) + self.stubs.Set(db, 'compute_node_get_by_host', fake_cn_get) def _make_request(self, url): req = webob.Request.blank(url) @@ -70,6 +76,8 @@ class ExtendedServerAttributesTest(test.TestCase): self.assertEqual(server.get('%shost' % self.prefix), host) self.assertEqual(server.get('%sinstance_name' % self.prefix), instance_name) + self.assertEqual(server.get('%shypervisor_hostname' % self.prefix), + host) def test_show(self): url = '/v2/fake/servers/%s' % UUID3 diff --git a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml index d5adf7806..3441eedcd 100644 --- a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml +++ b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml @@ -1,5 +1,5 @@ - + @@ -19,4 +19,4 @@ - \ No newline at end of file + diff --git a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl index 6c73bf60f..585492ffe 100644 --- a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl +++ b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl @@ -1,5 +1,5 @@ - + -- cgit