Add version compare function
Add version compare function for xcat and requested version so, functions not supported by future release of xcat will use old version interface. Change-Id: I22927e7aad338b11f850787d87ea2f211c90dd28
This commit is contained in:
@@ -1590,6 +1590,26 @@ class ZVMDriverTestCases(ZVMTestCase):
|
||||
version = self.driver._get_xcat_version()
|
||||
self.assertEqual(version, 2008003005)
|
||||
|
||||
@mock.patch('nova.virt.zvm.driver.ZVMDriver._get_xcat_version')
|
||||
def test_has_min_version(self, fake_xcat_ver):
|
||||
fake_xcat_ver.return_value = 1002003004
|
||||
|
||||
self.assertFalse(self.driver.has_min_version((1, 3, 3, 4)))
|
||||
self.assertTrue(self.driver.has_min_version((1, 1, 3, 5)))
|
||||
self.assertTrue(self.driver.has_min_version(None))
|
||||
|
||||
@mock.patch('nova.virt.zvm.driver.ZVMDriver._get_xcat_version')
|
||||
def test_has_version(self, fake_xcat_ver):
|
||||
fake_xcat_ver.return_value = 1002003004
|
||||
|
||||
xcat_ver = (1, 2, 3, 4)
|
||||
self.assertTrue(self.driver.has_version(xcat_ver))
|
||||
|
||||
for xcat_ver_ in [(1, 1, 3, 4), (1, 3, 3, 2)]:
|
||||
self.assertFalse(self.driver.has_version(xcat_ver_))
|
||||
|
||||
self.assertTrue(self.driver.has_version(None))
|
||||
|
||||
|
||||
class ZVMInstanceTestCases(ZVMTestCase):
|
||||
"""Test cases for zvm.instance."""
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
import contextlib
|
||||
import datetime
|
||||
import operator
|
||||
import os
|
||||
import time
|
||||
import uuid
|
||||
@@ -2000,3 +2001,19 @@ class ZVMDriver(driver.ComputeDriver):
|
||||
version = dict_str.split()[1]
|
||||
version = versionutils.convert_version_to_int(version)
|
||||
return version
|
||||
|
||||
def _version_check(self, req_ver=None, op=operator.lt):
|
||||
try:
|
||||
if req_ver is not None:
|
||||
cur_ver = self._get_xcat_version()
|
||||
if op(cur_ver, versionutils.convert_version_to_int(req_ver)):
|
||||
return False
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
def has_min_version(self, req_ver=None):
|
||||
return self._version_check(req_ver=req_ver, op=operator.lt)
|
||||
|
||||
def has_version(self, req_ver=None):
|
||||
return self._version_check(req_ver=req_ver, op=operator.ne)
|
||||
|
||||
Reference in New Issue
Block a user