Merge "3PAR: Allow iSCSI driver to be enabled for Primera 4.2 onwards."
This commit is contained in:
commit
798cb4ec05
@ -763,14 +763,15 @@ class HPE3PARBaseDriver(test.TestCase):
|
||||
spec=True,
|
||||
)
|
||||
def setup_mock_client(self, _m_client, driver, conf=None, m_conf=None,
|
||||
is_primera=False):
|
||||
is_primera=False,
|
||||
wsapi_version=wsapi_version_latest):
|
||||
|
||||
_m_client = _m_client.return_value
|
||||
|
||||
# Configure the base constants, defaults etc...
|
||||
_m_client.configure_mock(**self.mock_client_conf)
|
||||
|
||||
_m_client.getWsApiVersion.return_value = self.wsapi_version_latest
|
||||
_m_client.getWsApiVersion.return_value = wsapi_version
|
||||
|
||||
_m_client.is_primera_array.return_value = is_primera
|
||||
|
||||
@ -8901,10 +8902,49 @@ class TestHPE3PARISCSIDriver(HPE3PARBaseDriver):
|
||||
|
||||
return mock_client
|
||||
|
||||
def test_iscsi_primera(self):
|
||||
def test_iscsi_primera_old(self):
|
||||
# primera 4.0.xx.yyy
|
||||
wsapi_version_primera_old = {'major': 1,
|
||||
'build': 40000128,
|
||||
'minor': 8,
|
||||
'revision': 1}
|
||||
|
||||
self.assertRaises(NotImplementedError, self.setup_mock_client,
|
||||
driver=hpedriver.HPE3PARISCSIDriver,
|
||||
is_primera=True)
|
||||
is_primera=True,
|
||||
wsapi_version=wsapi_version_primera_old)
|
||||
|
||||
def test_iscsi_primera_new(self, config=None, mock_conf=None):
|
||||
# primera 4.2.xx.yyy
|
||||
wsapi_version_primera_new = {'major': 1,
|
||||
'build': 40202010,
|
||||
'minor': 8,
|
||||
'revision': 1}
|
||||
|
||||
self.ctxt = context.get_admin_context()
|
||||
|
||||
mock_client = self.setup_mock_client(
|
||||
conf=config,
|
||||
m_conf=mock_conf,
|
||||
driver=hpedriver.HPE3PARISCSIDriver,
|
||||
is_primera=True,
|
||||
wsapi_version=wsapi_version_primera_new)
|
||||
|
||||
expected_get_cpgs = [
|
||||
mock.call.getCPG(HPE3PAR_CPG),
|
||||
mock.call.getCPG(HPE3PAR_CPG2)]
|
||||
expected_get_ports = [mock.call.getPorts()]
|
||||
expected_primera = [
|
||||
mock.call.is_primera_array(),
|
||||
mock.call.getWsApiVersion()]
|
||||
mock_client.assert_has_calls(
|
||||
self.standard_login +
|
||||
expected_get_cpgs +
|
||||
self.standard_logout +
|
||||
expected_primera +
|
||||
self.standard_login +
|
||||
expected_get_ports +
|
||||
self.standard_logout)
|
||||
|
||||
@ddt.data('volume', 'volume_name_id')
|
||||
def test_initialize_connection(self, volume_attr):
|
||||
|
@ -128,10 +128,11 @@ class HPE3PARISCSIDriver(hpebasedriver.HPE3PARDriverBase):
|
||||
failover. bug #1773069
|
||||
4.0.4 - Added Peer Persistence feature
|
||||
4.0.5 - Added Primera array check. bug #1849525
|
||||
4.0.6 - Allow iSCSI support for Primera 4.2 onwards
|
||||
|
||||
"""
|
||||
|
||||
VERSION = "4.0.5"
|
||||
VERSION = "4.0.6"
|
||||
|
||||
# The name of the CI wiki page.
|
||||
CI_WIKI_NAME = "HPE_Storage_CI"
|
||||
@ -144,9 +145,17 @@ class HPE3PARISCSIDriver(hpebasedriver.HPE3PARDriverBase):
|
||||
client_obj = common.client
|
||||
is_primera = client_obj.is_primera_array()
|
||||
if is_primera:
|
||||
LOG.error("For Primera, only FC is supported. "
|
||||
"iSCSI cannot be used")
|
||||
raise NotImplementedError()
|
||||
api_version = client_obj.getWsApiVersion()
|
||||
array_version = api_version['build']
|
||||
LOG.debug("array version: %(version)s",
|
||||
{'version': array_version})
|
||||
if array_version < 40200000:
|
||||
err_msg = (_('The iSCSI driver is not supported for '
|
||||
'Primera %(version)s. It is supported '
|
||||
'for Primera 4.2 or higher versions.')
|
||||
% {'version': array_version})
|
||||
LOG.error(err_msg)
|
||||
raise NotImplementedError()
|
||||
|
||||
self.iscsi_ips = {}
|
||||
common.client_login()
|
||||
|
@ -378,15 +378,15 @@ OpenStack software.
|
||||
san_password=3parpass
|
||||
|
||||
# FIBRE CHANNEL DRIVER
|
||||
# Note: For Primera, only FC driver is supported as of now.
|
||||
# (uncomment the next line to enable the FC driver)
|
||||
#volume_driver=cinder.volume.drivers.hpe.hpe_3par_fc.HPE3PARFCDriver
|
||||
|
||||
# iSCSI DRIVER
|
||||
# If you enable the iSCSI driver, you must also set values
|
||||
# for hpe3par_iscsi_ips or iscsi_ip_address in this file.
|
||||
# Note: Primera currently requires the FC driver. If you
|
||||
# configure iSCSI with Primera, the driver will fail to start.
|
||||
# Note: The iSCSI driver is supported with 3PAR (all versions)
|
||||
# and Primera (version 4.2 or higher). If you configure iSCSI
|
||||
# with Primera 4.0 or 4.1, the driver will fail to start.
|
||||
# (uncomment the next line to enable the iSCSI driver)
|
||||
#volume_driver=cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver
|
||||
|
||||
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
HPE 3PAR Driver: Add support of iSCSI driver for Primera 4.2
|
||||
or higher versions.
|
Loading…
Reference in New Issue
Block a user