summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-03-23 10:57:41 +0000
committerGerrit Code Review <review@openstack.org>2014-03-23 10:57:41 +0000
commit7dc43eca135ea0cab6835d2dd60fb4bd9b727ae3 (patch)
treebcf1d27d593a65fde50ba8718dadf5e2c51e3927
parent44c60c6be51f0de187fe51f7f3d0d3bf6ed57f94 (diff)
parent00d18827aaf780e419c5b335bf2651b17ea34e30 (diff)
downloadnova-7dc43eca135ea0cab6835d2dd60fb4bd9b727ae3.tar.gz
Merge "VMware: enable driver to work with postgres database" into stable/havana
-rwxr-xr-xnova/tests/virt/vmwareapi/test_vmwareapi.py3
-rwxr-xr-x[-rw-r--r--]nova/utils.py12
-rwxr-xr-x[-rw-r--r--]nova/virt/vmwareapi/host.py7
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')]