diff --git a/nova/tests/test_powervm.py b/nova/tests/test_powervm.py index c6a385bdd20..946fd15a810 100644 --- a/nova/tests/test_powervm.py +++ b/nova/tests/test_powervm.py @@ -393,3 +393,26 @@ def test_get_long_resize_name(self): expected_name = 'rsz__really_long_instance_name_00000001' result = self.powervm_connection._get_resize_name(inst_name) self.assertEqual(expected_name, result) + + def test_get_host_stats(self): + host_stats = self.powervm_connection.get_host_stats(True) + self.assertIsNotNone(host_stats) + self.assertEquals(host_stats['vcpus'], 8.0) + self.assertEquals(round(host_stats['vcpus_used'], 1), 1.7) + self.assertEquals(host_stats['host_memory_total'], 65536) + self.assertEquals(host_stats['host_memory_free'], 46336) + self.assertEquals(host_stats['disk_total'], 10168) + self.assertEquals(host_stats['disk_used'], 0) + self.assertEquals(host_stats['disk_available'], 10168) + self.assertEquals(host_stats['disk_total'], + host_stats['disk_used'] + + host_stats['disk_available']) + + self.assertEquals(host_stats['cpu_info'], ('ppc64', 'powervm', '3940')) + self.assertEquals(host_stats['hypervisor_type'], 'powervm') + self.assertEquals(host_stats['hypervisor_version'], '7.1') + + self.assertEquals(host_stats['hypervisor_hostname'], "fake-powervm") + self.assertEquals(host_stats['supported_instances'][0][0], "ppc64") + self.assertEquals(host_stats['supported_instances'][0][1], "powervm") + self.assertEquals(host_stats['supported_instances'][0][2], "hvm") diff --git a/nova/virt/powervm/constants.py b/nova/virt/powervm/constants.py index 9c691352d03..1be330ca3fa 100644 --- a/nova/virt/powervm/constants.py +++ b/nova/virt/powervm/constants.py @@ -30,6 +30,7 @@ POWERVM_CPU_INFO = ('ppc64', 'powervm', '3940') POWERVM_HYPERVISOR_TYPE = 'powervm' POWERVM_HYPERVISOR_VERSION = '7.1' +POWERVM_SUPPORTED_INSTANCES = [('ppc64', 'powervm', 'hvm')] POWERVM_MIN_ROOT_GB = 10 diff --git a/nova/virt/powervm/operator.py b/nova/virt/powervm/operator.py index 08db2d18ab6..059935652e3 100644 --- a/nova/virt/powervm/operator.py +++ b/nova/virt/powervm/operator.py @@ -165,6 +165,7 @@ def _update_host_stats(self): data['hypervisor_type'] = constants.POWERVM_HYPERVISOR_TYPE data['hypervisor_version'] = constants.POWERVM_HYPERVISOR_VERSION data['hypervisor_hostname'] = self._operator.get_hostname() + data['supported_instances'] = constants.POWERVM_SUPPORTED_INSTANCES data['extres'] = '' self._host_stats = data