Merge "Unity driver: check array OE version"
This commit is contained in:
commit
91cb7fe204
|
@ -66,6 +66,9 @@ class MockDriver(object):
|
|||
|
||||
|
||||
class MockClient(object):
|
||||
def __init__(self):
|
||||
self._system = test_client.MockSystem()
|
||||
|
||||
@staticmethod
|
||||
def get_pools():
|
||||
return test_client.MockResourceList(['pool0', 'pool1'])
|
||||
|
@ -166,6 +169,10 @@ class MockClient(object):
|
|||
def get_ethernet_ports():
|
||||
return test_client.MockResourceList(ids=['spa_eth0', 'spb_eth0'])
|
||||
|
||||
@property
|
||||
def system(self):
|
||||
return self._system
|
||||
|
||||
|
||||
class MockLookupService(object):
|
||||
@staticmethod
|
||||
|
@ -338,6 +345,14 @@ class CommonAdapterTest(unittest.TestCase):
|
|||
self.assertFalse(self.adapter.array_cert_verify)
|
||||
self.assertIsNone(self.adapter.array_ca_cert_path)
|
||||
|
||||
def test_do_setup_version_before_4_1(self):
|
||||
def f():
|
||||
with mock.patch('cinder.volume.drivers.dell_emc.unity.adapter.'
|
||||
'CommonAdapter.validate_ports'):
|
||||
self.adapter._client.system.system_version = '4.0.0'
|
||||
self.adapter.do_setup(self.adapter.driver, MockConfig())
|
||||
self.assertRaises(exception.VolumeBackendAPIException, f)
|
||||
|
||||
def test_verify_cert_false_path_none(self):
|
||||
self.adapter.array_cert_verify = False
|
||||
self.adapter.array_ca_cert_path = None
|
||||
|
|
|
@ -202,6 +202,7 @@ class MockResourceList(object):
|
|||
class MockSystem(object):
|
||||
def __init__(self):
|
||||
self.serial_number = 'SYSTEM_SERIAL'
|
||||
self.system_version = '4.1.0'
|
||||
|
||||
@staticmethod
|
||||
def get_lun(_id=None, name=None):
|
||||
|
|
|
@ -74,6 +74,12 @@ class CommonAdapter(object):
|
|||
self.array_cert_verify = False
|
||||
self.array_ca_cert_path = self.config.driver_ssl_cert_path
|
||||
|
||||
sys_version = self.client.system.system_version
|
||||
if utils.is_before_4_1(sys_version):
|
||||
raise exception.VolumeBackendAPIException(
|
||||
data=_('Unity driver does not support array OE version: %s. '
|
||||
'Upgrade to 4.1 or later.') % sys_version)
|
||||
|
||||
self.storage_pools_map = self.get_managed_pools()
|
||||
|
||||
self.allowed_ports = self.validate_ports(self.config.unity_io_ports)
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
from __future__ import division
|
||||
|
||||
import contextlib
|
||||
from distutils import version
|
||||
import functools
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import fnmatch
|
||||
|
@ -284,3 +285,7 @@ def match_any(full, patterns):
|
|||
filter(lambda p: not any(fnmatch.fnmatchcase(x, p) for x in full),
|
||||
patterns))
|
||||
return matched, unmatched, unmatched_patterns
|
||||
|
||||
|
||||
def is_before_4_1(ver):
|
||||
return version.LooseVersion(ver) < version.LooseVersion('4.1')
|
||||
|
|
Loading…
Reference in New Issue