VMAX driver - rename and restructure driver

Rename and restructure VMAX driver to replace EMC with
Dell EMC.

Change-Id: Ic5c7a62015750151878a15e97f7e31e9b8bc7098
Implements: blueprint vmax-rename-dell-emc
This commit is contained in:
Helen Walsh 2016-12-16 17:14:28 +00:00
parent d7f93d527c
commit e569188aa8
14 changed files with 803 additions and 791 deletions

View File

@ -78,6 +78,8 @@ from cinder.volume.drivers.dell_emc.scaleio import driver as \
cinder_volume_drivers_dell_emc_scaleio_driver cinder_volume_drivers_dell_emc_scaleio_driver
from cinder.volume.drivers.dell_emc.unity import driver as \ from cinder.volume.drivers.dell_emc.unity import driver as \
cinder_volume_drivers_dell_emc_unity_driver cinder_volume_drivers_dell_emc_unity_driver
from cinder.volume.drivers.dell_emc.vmax import common as \
cinder_volume_drivers_dell_emc_vmax_common
from cinder.volume.drivers.dell_emc.vnx import common as \ from cinder.volume.drivers.dell_emc.vnx import common as \
cinder_volume_drivers_dell_emc_vnx_common cinder_volume_drivers_dell_emc_vnx_common
from cinder.volume.drivers.dell_emc import xtremio as \ from cinder.volume.drivers.dell_emc import xtremio as \
@ -88,8 +90,6 @@ from cinder.volume.drivers.dothill import dothill_common as \
cinder_volume_drivers_dothill_dothillcommon cinder_volume_drivers_dothill_dothillcommon
from cinder.volume.drivers import drbdmanagedrv as \ from cinder.volume.drivers import drbdmanagedrv as \
cinder_volume_drivers_drbdmanagedrv cinder_volume_drivers_drbdmanagedrv
from cinder.volume.drivers.emc import emc_vmax_common as \
cinder_volume_drivers_emc_emcvmaxcommon
from cinder.volume.drivers import eqlx as cinder_volume_drivers_eqlx from cinder.volume.drivers import eqlx as cinder_volume_drivers_eqlx
from cinder.volume.drivers.falconstor import fss_common as \ from cinder.volume.drivers.falconstor import fss_common as \
cinder_volume_drivers_falconstor_fsscommon cinder_volume_drivers_falconstor_fsscommon
@ -275,13 +275,13 @@ def list_opts():
common_opts, common_opts,
cinder_volume_drivers_dell_emc_scaleio_driver.scaleio_opts, cinder_volume_drivers_dell_emc_scaleio_driver.scaleio_opts,
cinder_volume_drivers_dell_emc_unity_driver.UNITY_OPTS, cinder_volume_drivers_dell_emc_unity_driver.UNITY_OPTS,
cinder_volume_drivers_dell_emc_vmax_common.emc_opts,
cinder_volume_drivers_dell_emc_vnx_common.VNX_OPTS, cinder_volume_drivers_dell_emc_vnx_common.VNX_OPTS,
cinder_volume_drivers_dell_emc_xtremio.XTREMIO_OPTS, cinder_volume_drivers_dell_emc_xtremio.XTREMIO_OPTS,
cinder_volume_drivers_disco_disco.disco_opts, cinder_volume_drivers_disco_disco.disco_opts,
cinder_volume_drivers_dothill_dothillcommon.common_opts, cinder_volume_drivers_dothill_dothillcommon.common_opts,
cinder_volume_drivers_dothill_dothillcommon.iscsi_opts, cinder_volume_drivers_dothill_dothillcommon.iscsi_opts,
cinder_volume_drivers_drbdmanagedrv.drbd_opts, cinder_volume_drivers_drbdmanagedrv.drbd_opts,
cinder_volume_drivers_emc_emcvmaxcommon.emc_opts,
cinder_volume_drivers_eqlx.eqlx_opts, cinder_volume_drivers_eqlx.eqlx_opts,
cinder_volume_drivers_falconstor_fsscommon.FSS_OPTS, cinder_volume_drivers_falconstor_fsscommon.FSS_OPTS,
cinder_volume_drivers_fujitsu_eternusdxcommon. cinder_volume_drivers_fujitsu_eternusdxcommon.

View File

@ -27,12 +27,12 @@ from cinder import exception
from cinder import utils as cinder_utils from cinder import utils as cinder_utils
from cinder.i18n import _, _LE, _LI, _LW from cinder.i18n import _, _LE, _LI, _LW
from cinder.objects import fields from cinder.objects import fields
from cinder.volume.drivers.emc import emc_vmax_fast from cinder.volume.drivers.dell_emc.vmax import fast
from cinder.volume.drivers.emc import emc_vmax_https from cinder.volume.drivers.dell_emc.vmax import https
from cinder.volume.drivers.emc import emc_vmax_masking from cinder.volume.drivers.dell_emc.vmax import masking
from cinder.volume.drivers.emc import emc_vmax_provision from cinder.volume.drivers.dell_emc.vmax import provision
from cinder.volume.drivers.emc import emc_vmax_provision_v3 from cinder.volume.drivers.dell_emc.vmax import provision_v3
from cinder.volume.drivers.emc import emc_vmax_utils from cinder.volume.drivers.dell_emc.vmax import utils
from cinder.volume import utils as volume_utils from cinder.volume import utils as volume_utils
@ -100,7 +100,7 @@ emc_opts = [
CONF.register_opts(emc_opts) CONF.register_opts(emc_opts)
class EMCVMAXCommon(object): class VMAXCommon(object):
"""Common class for SMI-S based EMC volume drivers. """Common class for SMI-S based EMC volume drivers.
This common class is for EMC volume drivers based on SMI-S. This common class is for EMC volume drivers based on SMI-S.
@ -142,11 +142,11 @@ class EMCVMAXCommon(object):
self.url = None self.url = None
self.user = None self.user = None
self.passwd = None self.passwd = None
self.masking = emc_vmax_masking.EMCVMAXMasking(prtcl) self.masking = masking.VMAXMasking(prtcl)
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl) self.utils = utils.VMAXUtils(prtcl)
self.fast = emc_vmax_fast.EMCVMAXFast(prtcl) self.fast = fast.VMAXFast(prtcl)
self.provision = emc_vmax_provision.EMCVMAXProvision(prtcl) self.provision = provision.VMAXProvision(prtcl)
self.provisionv3 = emc_vmax_provision_v3.EMCVMAXProvisionV3(prtcl) self.provisionv3 = provision_v3.VMAXProvisionV3(prtcl)
self.version = version self.version = version
# replication # replication
self.replication_enabled = False self.replication_enabled = False
@ -1659,7 +1659,7 @@ class EMCVMAXCommon(object):
"cert_file": "cert_file":
self.configuration.safe_get( self.configuration.safe_get(
'driver_client_cert')} 'driver_client_cert')}
pywbem.cim_http.wbem_request = emc_vmax_https.wbem_request pywbem.cim_http.wbem_request = https.wbem_request
conn = pywbem.WBEMConnection( conn = pywbem.WBEMConnection(
self.url, self.url,
(self.user, self.passwd), (self.user, self.passwd),

View File

@ -17,8 +17,8 @@ from oslo_log import log as logging
from cinder import exception from cinder import exception
from cinder.i18n import _, _LE, _LI, _LW from cinder.i18n import _, _LE, _LI, _LW
from cinder.volume.drivers.emc import emc_vmax_provision from cinder.volume.drivers.dell_emc.vmax import provision
from cinder.volume.drivers.emc import emc_vmax_utils from cinder.volume.drivers.dell_emc.vmax import utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -26,7 +26,7 @@ DEFAULT_SG_PREFIX = 'OS_default_'
DEFAULT_SG_POSTFIX = '_SG' DEFAULT_SG_POSTFIX = '_SG'
class EMCVMAXFast(object): class VMAXFast(object):
"""FAST Class for SMI-S based EMC volume drivers. """FAST Class for SMI-S based EMC volume drivers.
This FAST class is for EMC volume drivers based on SMI-S. This FAST class is for EMC volume drivers based on SMI-S.
@ -34,8 +34,8 @@ class EMCVMAXFast(object):
""" """
def __init__(self, prtcl): def __init__(self, prtcl):
self.protocol = prtcl self.protocol = prtcl
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl) self.utils = utils.VMAXUtils(prtcl)
self.provision = emc_vmax_provision.EMCVMAXProvision(prtcl) self.provision = provision.VMAXProvision(prtcl)
def _check_if_fast_supported(self, conn, storageSystemInstanceName): def _check_if_fast_supported(self, conn, storageSystemInstanceName):
"""Check to see if fast is supported on the array. """Check to see if fast is supported on the array.

View File

@ -1,4 +1,4 @@
# Copyright (c) 2015 EMC Corporation. # Copyright (c) 2012 - 2015 EMC Corporation.
# All Rights Reserved. # All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may # Licensed under the Apache License, Version 2.0 (the "License"); you may
@ -21,14 +21,14 @@ import six
from cinder.i18n import _LW from cinder.i18n import _LW
from cinder import interface from cinder import interface
from cinder.volume import driver from cinder.volume import driver
from cinder.volume.drivers.emc import emc_vmax_common from cinder.volume.drivers.dell_emc.vmax import common
from cinder.zonemanager import utils as fczm_utils from cinder.zonemanager import utils as fczm_utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@interface.volumedriver @interface.volumedriver
class EMCVMAXFCDriver(driver.FibreChannelDriver): class VMAXFCDriver(driver.FibreChannelDriver):
"""EMC FC Drivers for VMAX using SMI-S. """EMC FC Drivers for VMAX using SMI-S.
Version history: Version history:
@ -76,6 +76,7 @@ class EMCVMAXFCDriver(driver.FibreChannelDriver):
(bp vmax-volume-migration) (bp vmax-volume-migration)
- Support for compression on All Flash - Support for compression on All Flash
- Volume replication 2.1 (bp add-vmax-replication) - Volume replication 2.1 (bp add-vmax-replication)
- rename and restructure driver (bp vmax-rename-dell-emc)
""" """
@ -86,9 +87,9 @@ class EMCVMAXFCDriver(driver.FibreChannelDriver):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(EMCVMAXFCDriver, self).__init__(*args, **kwargs) super(VMAXFCDriver, self).__init__(*args, **kwargs)
self.active_backend_id = kwargs.get('active_backend_id', None) self.active_backend_id = kwargs.get('active_backend_id', None)
self.common = emc_vmax_common.EMCVMAXCommon( self.common = common.VMAXCommon(
'FC', 'FC',
self.VERSION, self.VERSION,
configuration=self.configuration, configuration=self.configuration,

View File

@ -23,7 +23,7 @@ from cinder import exception
from cinder.i18n import _, _LE, _LI from cinder.i18n import _, _LE, _LI
from cinder import interface from cinder import interface
from cinder.volume import driver from cinder.volume import driver
from cinder.volume.drivers.emc import emc_vmax_common from cinder.volume.drivers.dell_emc.vmax import common
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -32,7 +32,7 @@ CINDER_CONF = '/etc/cinder/cinder.conf'
@interface.volumedriver @interface.volumedriver
class EMCVMAXISCSIDriver(driver.ISCSIDriver): class VMAXISCSIDriver(driver.ISCSIDriver):
"""EMC ISCSI Drivers for VMAX using SMI-S. """EMC ISCSI Drivers for VMAX using SMI-S.
Version history: Version history:
@ -82,6 +82,7 @@ class EMCVMAXISCSIDriver(driver.ISCSIDriver):
(bp vmax-volume-migration) (bp vmax-volume-migration)
- Support for compression on All Flash - Support for compression on All Flash
- Volume replication 2.1 (bp add-vmax-replication) - Volume replication 2.1 (bp add-vmax-replication)
- rename and restructure driver (bp vmax-rename-dell-emc)
""" """
@ -92,10 +93,10 @@ class EMCVMAXISCSIDriver(driver.ISCSIDriver):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(EMCVMAXISCSIDriver, self).__init__(*args, **kwargs) super(VMAXISCSIDriver, self).__init__(*args, **kwargs)
self.active_backend_id = kwargs.get('active_backend_id', None) self.active_backend_id = kwargs.get('active_backend_id', None)
self.common = ( self.common = (
emc_vmax_common.EMCVMAXCommon( common.VMAXCommon(
'iSCSI', 'iSCSI',
self.VERSION, self.VERSION,
configuration=self.configuration, configuration=self.configuration,

View File

@ -19,10 +19,10 @@ import six
from cinder import exception from cinder import exception
from cinder.i18n import _, _LE, _LI, _LW from cinder.i18n import _, _LE, _LI, _LW
from cinder.volume.drivers.emc import emc_vmax_fast from cinder.volume.drivers.dell_emc.vmax import fast
from cinder.volume.drivers.emc import emc_vmax_provision from cinder.volume.drivers.dell_emc.vmax import provision
from cinder.volume.drivers.emc import emc_vmax_provision_v3 from cinder.volume.drivers.dell_emc.vmax import provision_v3
from cinder.volume.drivers.emc import emc_vmax_utils from cinder.volume.drivers.dell_emc.vmax import utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -38,7 +38,7 @@ FASTPOLICY = 'storagetype:fastpolicy'
ISV3 = 'isV3' ISV3 = 'isV3'
class EMCVMAXMasking(object): class VMAXMasking(object):
"""Masking class for SMI-S based EMC volume drivers. """Masking class for SMI-S based EMC volume drivers.
Masking code to dynamically create a masking view Masking code to dynamically create a masking view
@ -47,10 +47,10 @@ class EMCVMAXMasking(object):
""" """
def __init__(self, prtcl): def __init__(self, prtcl):
self.protocol = prtcl self.protocol = prtcl
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl) self.utils = utils.VMAXUtils(prtcl)
self.fast = emc_vmax_fast.EMCVMAXFast(prtcl) self.fast = fast.VMAXFast(prtcl)
self.provision = emc_vmax_provision.EMCVMAXProvision(prtcl) self.provision = provision.VMAXProvision(prtcl)
self.provisionv3 = emc_vmax_provision_v3.EMCVMAXProvisionV3(prtcl) self.provisionv3 = provision_v3.VMAXProvisionV3(prtcl)
def setup_masking_view(self, conn, maskingViewDict, extraSpecs): def setup_masking_view(self, conn, maskingViewDict, extraSpecs):

View File

@ -20,7 +20,7 @@ import six
from cinder import exception from cinder import exception
from cinder.i18n import _ from cinder.i18n import _
from cinder.volume.drivers.emc import emc_vmax_utils from cinder.volume.drivers.dell_emc.vmax import utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -36,7 +36,7 @@ COPY_ON_WRITE = 6
TF_CLONE = 8 TF_CLONE = 8
class EMCVMAXProvision(object): class VMAXProvision(object):
"""Provisioning Class for SMI-S based EMC volume drivers. """Provisioning Class for SMI-S based EMC volume drivers.
This Provisioning class is for EMC volume drivers based on SMI-S. This Provisioning class is for EMC volume drivers based on SMI-S.
@ -44,7 +44,7 @@ class EMCVMAXProvision(object):
""" """
def __init__(self, prtcl): def __init__(self, prtcl):
self.protocol = prtcl self.protocol = prtcl
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl) self.utils = utils.VMAXUtils(prtcl)
def delete_volume_from_pool( def delete_volume_from_pool(
self, conn, storageConfigservice, volumeInstanceName, volumeName, self, conn, storageConfigservice, volumeInstanceName, volumeName,

View File

@ -21,7 +21,7 @@ import six
from cinder import exception from cinder import exception
from cinder.i18n import _, _LE, _LW from cinder.i18n import _, _LE, _LW
from cinder.volume.drivers.emc import emc_vmax_utils from cinder.volume.drivers.dell_emc.vmax import utils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -43,7 +43,7 @@ RDF_SYNCHRONIZED = 6
RDF_FAILEDOVER = 12 RDF_FAILEDOVER = 12
class EMCVMAXProvisionV3(object): class VMAXProvisionV3(object):
"""Provisioning Class for SMI-S based EMC volume drivers. """Provisioning Class for SMI-S based EMC volume drivers.
This Provisioning class is for EMC volume drivers based on SMI-S. This Provisioning class is for EMC volume drivers based on SMI-S.
@ -51,7 +51,7 @@ class EMCVMAXProvisionV3(object):
""" """
def __init__(self, prtcl): def __init__(self, prtcl):
self.protocol = prtcl self.protocol = prtcl
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl) self.utils = utils.VMAXUtils(prtcl)
def delete_volume_from_pool( def delete_volume_from_pool(
self, conn, storageConfigservice, volumeInstanceName, volumeName, self, conn, storageConfigservice, volumeInstanceName, volumeName,

View File

@ -70,7 +70,7 @@ IS_RE = 'replication_enabled'
REPLICATION_FAILOVER = fields.ReplicationStatus.FAILED_OVER REPLICATION_FAILOVER = fields.ReplicationStatus.FAILED_OVER
class EMCVMAXUtils(object): class VMAXUtils(object):
"""Utility class for SMI-S based EMC volume drivers. """Utility class for SMI-S based EMC volume drivers.
This Utility class is for EMC volume drivers based on SMI-S. This Utility class is for EMC volume drivers based on SMI-S.
@ -2048,9 +2048,9 @@ class EMCVMAXUtils(object):
portGroupName = portGroupElement.childNodes[0].nodeValue portGroupName = portGroupElement.childNodes[0].nodeValue
if portGroupName: if portGroupName:
portGroupNames.append(portGroupName.strip()) portGroupNames.append(portGroupName.strip())
portGroupNames = EMCVMAXUtils._filter_list(portGroupNames) portGroupNames = VMAXUtils._filter_list(portGroupNames)
if len(portGroupNames) > 0: if len(portGroupNames) > 0:
return EMCVMAXUtils.get_random_pg_from_list(portGroupNames) return VMAXUtils.get_random_pg_from_list(portGroupNames)
exception_message = (_("No Port Group elements found in config file.")) exception_message = (_("No Port Group elements found in config file."))
LOG.error(exception_message) LOG.error(exception_message)

View File

@ -165,6 +165,10 @@ MAPPING = {
'cinder.volume.drivers.dell_emc.xtremio.XtremIOFCDriver', 'cinder.volume.drivers.dell_emc.xtremio.XtremIOFCDriver',
'cinder.volume.drivers.datera.DateraDriver': 'cinder.volume.drivers.datera.DateraDriver':
'cinder.volume.drivers.datera.datera_iscsi.DateraDriver', 'cinder.volume.drivers.datera.datera_iscsi.DateraDriver',
'cinder.volume.drivers.emc.emc_vmax_iscsi.EMCVMAXISCSIDriver':
'cinder.volume.drivers.dell_emc.vmax.iscsi.VMAXISCSIDriver',
'cinder.volume.drivers.emc.emc_vmax_fc.EMCVMAXFCDriver':
'cinder.volume.drivers.dell_emc.vmax.fc.VMAXFCDriver',
} }

View File

@ -0,0 +1,6 @@
---
upgrade:
- The VMAX driver is moved to the dell_emc directory.
volume_driver entry in cinder.conf needs to be changed to
cinder.volume.drivers.dell_emc.vmax.iscsi.VMAXISCSIDriver or
cinder.volume.drivers.dell_emc.vmax.fc.VMAXFCDriver.