diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-03-23 10:57:41 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-03-23 10:57:41 +0000 |
commit | 7dc43eca135ea0cab6835d2dd60fb4bd9b727ae3 (patch) | |
tree | bcf1d27d593a65fde50ba8718dadf5e2c51e3927 | |
parent | 44c60c6be51f0de187fe51f7f3d0d3bf6ed57f94 (diff) | |
parent | 00d18827aaf780e419c5b335bf2651b17ea34e30 (diff) | |
download | nova-7dc43eca135ea0cab6835d2dd60fb4bd9b727ae3.tar.gz |
Merge "VMware: enable driver to work with postgres database" into stable/havana
-rwxr-xr-x | nova/tests/virt/vmwareapi/test_vmwareapi.py | 3 | ||||
-rwxr-xr-x[-rw-r--r--] | nova/utils.py | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | nova/virt/vmwareapi/host.py | 7 |
3 files changed, 18 insertions, 4 deletions
diff --git a/nova/tests/virt/vmwareapi/test_vmwareapi.py b/nova/tests/virt/vmwareapi/test_vmwareapi.py index 6950a681ee..257e5debf9 100755 --- a/nova/tests/virt/vmwareapi/test_vmwareapi.py +++ b/nova/tests/virt/vmwareapi/test_vmwareapi.py @@ -1208,6 +1208,7 @@ class VMwareAPIHostTestCase(test.NoDBTestCase): self.assertEquals(stats['disk_used'], 1024 - 500) self.assertEquals(stats['host_memory_total'], 1024) self.assertEquals(stats['host_memory_free'], 1024 - 500) + self.assertEquals(stats['hypervisor_version'], 5000000) supported_instances = [('i686', 'vmware', 'hvm'), ('x86_64', 'vmware', 'hvm')] self.assertEquals(stats['supported_instances'], supported_instances) @@ -1277,7 +1278,7 @@ class VMwareAPIVCDriverTestCase(VMwareAPIVMTestCase): self.assertEquals(stats['memory_mb'], 1000) self.assertEquals(stats['memory_mb_used'], 500) self.assertEquals(stats['hypervisor_type'], 'VMware vCenter Server') - self.assertEquals(stats['hypervisor_version'], '5.1.0') + self.assertEquals(stats['hypervisor_version'], 5001000) self.assertEquals(stats['hypervisor_hostname'], self.node_name) self.assertEquals(stats['cpu_info'], jsonutils.dumps(cpu_info)) self.assertEquals(stats['supported_instances'], diff --git a/nova/utils.py b/nova/utils.py index 065d9ff89c..599cb640dc 100644..100755 --- a/nova/utils.py +++ b/nova/utils.py @@ -1165,7 +1165,17 @@ def is_none_string(val): def convert_version_to_int(version): - return version[0] * 1000000 + version[1] * 1000 + version[2] + try: + if type(version) == str: + version = convert_version_to_tuple(version) + if type(version) == tuple: + return reduce(lambda x, y: (x * 1000) + y, version) + except Exception: + raise exception.NovaException(message="Hypervisor version invalid.") + + +def convert_version_to_tuple(version_str): + return tuple(int(part) for part in version_str.split('.')) def is_neutron(): diff --git a/nova/virt/vmwareapi/host.py b/nova/virt/vmwareapi/host.py index fb7b602db0..4420256107 100644..100755 --- a/nova/virt/vmwareapi/host.py +++ b/nova/virt/vmwareapi/host.py @@ -21,6 +21,7 @@ Management class for host-related functions (start, reboot, etc). from nova import exception from nova.openstack.common.gettextutils import _ from nova.openstack.common import log as logging +from nova import utils from nova.virt.vmwareapi import vim_util from nova.virt.vmwareapi import vm_util @@ -133,7 +134,8 @@ class HostState(object): data["host_memory_free"] = data["host_memory_total"] - \ summary.quickStats.overallMemoryUsage data["hypervisor_type"] = summary.config.product.name - data["hypervisor_version"] = summary.config.product.version + data["hypervisor_version"] = utils.convert_version_to_int( + str(summary.config.product.version)) data["hypervisor_hostname"] = self._host_name data["supported_instances"] = [('i686', 'vmware', 'hvm'), ('x86_64', 'vmware', 'hvm')] @@ -186,7 +188,8 @@ class VCState(object): data["host_memory_total"] = stats['mem']['total'] data["host_memory_free"] = stats['mem']['free'] data["hypervisor_type"] = about_info.name - data["hypervisor_version"] = about_info.version + data["hypervisor_version"] = utils.convert_version_to_int( + str(about_info.version)) data["hypervisor_hostname"] = self._host_name data["supported_instances"] = [('i686', 'vmware', 'hvm'), ('x86_64', 'vmware', 'hvm')] |