From c918ff377f9854a38486a00a0a62548eb27dd2a9 Mon Sep 17 00:00:00 2001 From: Arata Notsu Date: Tue, 6 Nov 2012 23:12:20 +0900 Subject: [PATCH] Make ComputeDrivers send hypervisor_hostname hypervisor_hostname is set in get_available_resource() and in get_host_stats(). Except for vmwareapi driver. Change-Id: I66348ae1e986162b8139b04ab03c42c424338175 --- .../OS-EXT-SRV-ATTR/extended-server-attrs-get.json.tpl | 2 +- .../OS-EXT-SRV-ATTR/extended-server-attrs-get.xml.tpl | 2 +- .../OS-EXT-SRV-ATTR/extended-server-attrs-list.json.tpl | 2 +- .../OS-EXT-SRV-ATTR/extended-server-attrs-list.xml.tpl | 2 +- .../api_samples/all_extensions/server-get-resp.json.tpl | 2 +- .../api_samples/all_extensions/server-get-resp.xml.tpl | 2 +- .../api_samples/all_extensions/servers-details-resp.json.tpl | 2 +- .../api_samples/all_extensions/servers-details-resp.xml.tpl | 2 +- nova/tests/integrated/test_api_samples.py | 4 ++++ nova/tests/test_powervm.py | 3 +++ nova/virt/baremetal/driver.py | 2 ++ nova/virt/fake.py | 5 ++++- nova/virt/hyperv/hostops.py | 1 + nova/virt/powervm/operator.py | 1 + nova/virt/xenapi/fake.py | 4 +++- nova/virt/xenapi/host.py | 1 + 16 files changed, 27 insertions(+), 10 deletions(-) diff --git a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.json.tpl b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.json.tpl index 44e99cd16ae7..c70192949a32 100644 --- a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.json.tpl +++ b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.json.tpl @@ -1,7 +1,7 @@ { "server": { "OS-EXT-SRV-ATTR:host": "%(compute_host)s", - "OS-EXT-SRV-ATTR:hypervisor_hostname": null, + "OS-EXT-SRV-ATTR:hypervisor_hostname": "%(hypervisor_hostname)s", "OS-EXT-SRV-ATTR:instance_name": "%(instance_name)s", "accessIPv4": "", "accessIPv6": "", diff --git a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.xml.tpl b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.xml.tpl index 1cb33425ec9e..beec3a12a753 100644 --- a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.xml.tpl +++ b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-get.xml.tpl @@ -1,5 +1,5 @@ - + diff --git a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.json.tpl b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.json.tpl index 995865528c2d..1fb8e1a47ad8 100644 --- a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.json.tpl +++ b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.json.tpl @@ -2,7 +2,7 @@ "servers": [ { "OS-EXT-SRV-ATTR:host": "%(compute_host)s", - "OS-EXT-SRV-ATTR:hypervisor_hostname": null, + "OS-EXT-SRV-ATTR:hypervisor_hostname": "%(hypervisor_hostname)s", "OS-EXT-SRV-ATTR:instance_name": "%(instance_name)s", "accessIPv4": "", "accessIPv6": "", diff --git a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.xml.tpl b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.xml.tpl index 7507232eaff8..1811882a2e53 100644 --- a/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.xml.tpl +++ b/nova/tests/integrated/api_samples/OS-EXT-SRV-ATTR/extended-server-attrs-list.xml.tpl @@ -1,6 +1,6 @@ - + diff --git a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl index 2c44cdfc038c..92e62629356b 100644 --- a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl +++ b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl @@ -2,7 +2,7 @@ "server": { "OS-DCF:diskConfig": "AUTO", "OS-EXT-SRV-ATTR:host": "%(compute_host)s", - "OS-EXT-SRV-ATTR:hypervisor_hostname": null, + "OS-EXT-SRV-ATTR:hypervisor_hostname": "%(hypervisor_hostname)s", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, 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 d910a7e239ba..137e59686647 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 @@ - + diff --git a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl index 21185c5d5cc6..8f1583bafd10 100644 --- a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl +++ b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl @@ -3,7 +3,7 @@ { "OS-DCF:diskConfig": "AUTO", "OS-EXT-SRV-ATTR:host": "%(compute_host)s", - "OS-EXT-SRV-ATTR:hypervisor_hostname": null, + "OS-EXT-SRV-ATTR:hypervisor_hostname": "%(hypervisor_hostname)s", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, diff --git a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl index eb7bed92d845..344686e6687d 100644 --- a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl +++ b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl @@ -1,6 +1,6 @@ - + diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py index 89d6d42c6ea8..3bcd737bbb8b 100644 --- a/nova/tests/integrated/test_api_samples.py +++ b/nova/tests/integrated/test_api_samples.py @@ -303,6 +303,7 @@ class ServersSampleJsonTest(ServersSampleBase): subs = self._get_regexes() subs['hostid'] = '[a-f0-9]+' subs['id'] = uuid + subs['hypervisor_hostname'] = r'[\w\.\-]+' return self._verify_response('server-get-resp', subs, response) def test_servers_list(self): @@ -320,6 +321,7 @@ class ServersSampleJsonTest(ServersSampleBase): subs = self._get_regexes() subs['hostid'] = '[a-f0-9]+' subs['id'] = uuid + subs['hypervisor_hostname'] = r'[\w\.\-]+' return self._verify_response('servers-details-resp', subs, response) @@ -804,6 +806,7 @@ class ExtendedServerAttributesJsonTest(ServersSampleBase): subs['hostid'] = '[a-f0-9]+' subs['id'] = uuid subs['instance_name'] = 'instance-\d{8}' + subs['hypervisor_hostname'] = r'[\w\.\-]+' return self._verify_response('extended-server-attrs-get', subs, response) @@ -815,6 +818,7 @@ class ExtendedServerAttributesJsonTest(ServersSampleBase): subs['hostid'] = '[a-f0-9]+' subs['id'] = uuid subs['instance_name'] = 'instance-\d{8}' + subs['hypervisor_hostname'] = r'[\w\.\-]+' return self._verify_response('extended-server-attrs-list', subs, response) diff --git a/nova/tests/test_powervm.py b/nova/tests/test_powervm.py index 83a7514dbb55..8f6f27bb096e 100644 --- a/nova/tests/test_powervm.py +++ b/nova/tests/test_powervm.py @@ -105,6 +105,9 @@ class FakeIVMOperator(object): 'disk_used': 0, 'disk_avail': 10168} + def get_hostname(self): + return 'fake-powervm' + def fake_get_powervm_operator(): return FakeIVMOperator() diff --git a/nova/virt/baremetal/driver.py b/nova/virt/baremetal/driver.py index c38b0f98bb47..ee183584c465 100644 --- a/nova/virt/baremetal/driver.py +++ b/nova/virt/baremetal/driver.py @@ -676,6 +676,7 @@ class BareMetalDriver(driver.ComputeDriver): 'local_gb_used': self.get_local_gb_used(), 'hypervisor_type': self.get_hypervisor_type(), 'hypervisor_version': self.get_hypervisor_version(), + 'hypervisor_hostname': FLAGS.host, 'cpu_info': self.get_cpu_info(), 'cpu_arch': FLAGS.cpu_arch} @@ -737,4 +738,5 @@ class HostState(object): self.connection.get_memory_mb_used()) data["hypervisor_type"] = self.connection.get_hypervisor_type() data["hypervisor_version"] = self.connection.get_hypervisor_version() + data["hypervisor_hostname"] = FLAGS.host self._stats = data diff --git a/nova/virt/fake.py b/nova/virt/fake.py index 877fb76030fe..79d98c5cf9e4 100644 --- a/nova/virt/fake.py +++ b/nova/virt/fake.py @@ -70,7 +70,9 @@ class FakeDriver(driver.ComputeDriver): 'disk_total': 600000000000, 'disk_used': 100000000000, 'host_uuid': 'cedb9b39-9388-41df-8891-c5c9a0c0fe5f', - 'host_name_label': 'fake-mini'} + 'host_name_label': 'fake-mini', + 'hypervisor_hostname': 'fake-mini', + } self._mounts = {} def init_host(self, host): @@ -265,6 +267,7 @@ class FakeDriver(driver.ComputeDriver): 'local_gb_used': 0, 'hypervisor_type': 'fake', 'hypervisor_version': '1.0', + 'hypervisor_hostname': 'fake-mini', 'cpu_info': '?'} return dic diff --git a/nova/virt/hyperv/hostops.py b/nova/virt/hyperv/hostops.py index b2a025e0c2fb..a2f9d590497e 100644 --- a/nova/virt/hyperv/hostops.py +++ b/nova/virt/hyperv/hostops.py @@ -152,6 +152,7 @@ class HostOps(baseops.BaseOps): data["supported_instances"] = \ [('i686', 'hyperv', 'hvm'), ('x86_64', 'hyperv', 'hvm')] + data["hypervisor_hostname"] = platform.node() self._stats = data diff --git a/nova/virt/powervm/operator.py b/nova/virt/powervm/operator.py index bc0986ca4346..2601f0537f06 100644 --- a/nova/virt/powervm/operator.py +++ b/nova/virt/powervm/operator.py @@ -156,6 +156,7 @@ class PowerVMOperator(object): data['host_memory_free'] = memory_info['avail_mem'] data['hypervisor_type'] = constants.POWERVM_HYPERVISOR_TYPE data['hypervisor_version'] = constants.POWERVM_HYPERVISOR_VERSION + data['hypervisor_hostname'] = self._operator.get_hostname() data['extres'] = '' self._host_stats = data diff --git a/nova/virt/xenapi/fake.py b/nova/virt/xenapi/fake.py index b22112f667b5..db4f5d03e28f 100644 --- a/nova/virt/xenapi/fake.py +++ b/nova/virt/xenapi/fake.py @@ -583,7 +583,9 @@ class SessionBase(object): return jsonutils.dumps({'host_memory': {'total': 10, 'overhead': 20, 'free': 30, - 'free-computed': 40}}) + 'free-computed': 40}, + 'host_hostname': 'fake-xenhost', + }) def _plugin_poweraction(self, method, args): return jsonutils.dumps({"power_action": method[5:]}) diff --git a/nova/virt/xenapi/host.py b/nova/virt/xenapi/host.py index 8a69f7c54c25..39a3b9824fa2 100644 --- a/nova/virt/xenapi/host.py +++ b/nova/virt/xenapi/host.py @@ -174,6 +174,7 @@ class HostState(object): data["host_memory_free_computed"] = host_memory.get( 'free-computed', 0) del data['host_memory'] + data['hypervisor_hostname'] = data['host_hostname'] self._stats = data