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
from cinder.volume.drivers.dell_emc.unity import driver as \
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 \
cinder_volume_drivers_dell_emc_vnx_common
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
from cinder.volume.drivers import drbdmanagedrv as \
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.falconstor import fss_common as \
cinder_volume_drivers_falconstor_fsscommon
@ -275,13 +275,13 @@ def list_opts():
common_opts,
cinder_volume_drivers_dell_emc_scaleio_driver.scaleio_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_xtremio.XTREMIO_OPTS,
cinder_volume_drivers_disco_disco.disco_opts,
cinder_volume_drivers_dothill_dothillcommon.common_opts,
cinder_volume_drivers_dothill_dothillcommon.iscsi_opts,
cinder_volume_drivers_drbdmanagedrv.drbd_opts,
cinder_volume_drivers_emc_emcvmaxcommon.emc_opts,
cinder_volume_drivers_eqlx.eqlx_opts,
cinder_volume_drivers_falconstor_fsscommon.FSS_OPTS,
cinder_volume_drivers_fujitsu_eternusdxcommon.

View File

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

View File

@ -17,8 +17,8 @@ from oslo_log import log as logging
from cinder import exception
from cinder.i18n import _, _LE, _LI, _LW
from cinder.volume.drivers.emc import emc_vmax_provision
from cinder.volume.drivers.emc import emc_vmax_utils
from cinder.volume.drivers.dell_emc.vmax import provision
from cinder.volume.drivers.dell_emc.vmax import utils
LOG = logging.getLogger(__name__)
@ -26,7 +26,7 @@ DEFAULT_SG_PREFIX = 'OS_default_'
DEFAULT_SG_POSTFIX = '_SG'
class EMCVMAXFast(object):
class VMAXFast(object):
"""FAST Class for SMI-S based EMC volume drivers.
This FAST class is for EMC volume drivers based on SMI-S.
@ -34,8 +34,8 @@ class EMCVMAXFast(object):
"""
def __init__(self, prtcl):
self.protocol = prtcl
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl)
self.provision = emc_vmax_provision.EMCVMAXProvision(prtcl)
self.utils = utils.VMAXUtils(prtcl)
self.provision = provision.VMAXProvision(prtcl)
def _check_if_fast_supported(self, conn, storageSystemInstanceName):
"""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.
#
# 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 import interface
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
LOG = logging.getLogger(__name__)
@interface.volumedriver
class EMCVMAXFCDriver(driver.FibreChannelDriver):
class VMAXFCDriver(driver.FibreChannelDriver):
"""EMC FC Drivers for VMAX using SMI-S.
Version history:
@ -76,6 +76,7 @@ class EMCVMAXFCDriver(driver.FibreChannelDriver):
(bp vmax-volume-migration)
- Support for compression on All Flash
- 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):
super(EMCVMAXFCDriver, self).__init__(*args, **kwargs)
super(VMAXFCDriver, self).__init__(*args, **kwargs)
self.active_backend_id = kwargs.get('active_backend_id', None)
self.common = emc_vmax_common.EMCVMAXCommon(
self.common = common.VMAXCommon(
'FC',
self.VERSION,
configuration=self.configuration,

View File

@ -23,7 +23,7 @@ from cinder import exception
from cinder.i18n import _, _LE, _LI
from cinder import interface
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__)
@ -32,7 +32,7 @@ CINDER_CONF = '/etc/cinder/cinder.conf'
@interface.volumedriver
class EMCVMAXISCSIDriver(driver.ISCSIDriver):
class VMAXISCSIDriver(driver.ISCSIDriver):
"""EMC ISCSI Drivers for VMAX using SMI-S.
Version history:
@ -82,6 +82,7 @@ class EMCVMAXISCSIDriver(driver.ISCSIDriver):
(bp vmax-volume-migration)
- Support for compression on All Flash
- 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):
super(EMCVMAXISCSIDriver, self).__init__(*args, **kwargs)
super(VMAXISCSIDriver, self).__init__(*args, **kwargs)
self.active_backend_id = kwargs.get('active_backend_id', None)
self.common = (
emc_vmax_common.EMCVMAXCommon(
common.VMAXCommon(
'iSCSI',
self.VERSION,
configuration=self.configuration,

View File

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

View File

@ -20,7 +20,7 @@ import six
from cinder import exception
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__)
@ -36,7 +36,7 @@ COPY_ON_WRITE = 6
TF_CLONE = 8
class EMCVMAXProvision(object):
class VMAXProvision(object):
"""Provisioning Class for SMI-S based EMC volume drivers.
This Provisioning class is for EMC volume drivers based on SMI-S.
@ -44,7 +44,7 @@ class EMCVMAXProvision(object):
"""
def __init__(self, prtcl):
self.protocol = prtcl
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl)
self.utils = utils.VMAXUtils(prtcl)
def delete_volume_from_pool(
self, conn, storageConfigservice, volumeInstanceName, volumeName,

View File

@ -21,7 +21,7 @@ import six
from cinder import exception
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__)
@ -43,7 +43,7 @@ RDF_SYNCHRONIZED = 6
RDF_FAILEDOVER = 12
class EMCVMAXProvisionV3(object):
class VMAXProvisionV3(object):
"""Provisioning Class for SMI-S based EMC volume drivers.
This Provisioning class is for EMC volume drivers based on SMI-S.
@ -51,7 +51,7 @@ class EMCVMAXProvisionV3(object):
"""
def __init__(self, prtcl):
self.protocol = prtcl
self.utils = emc_vmax_utils.EMCVMAXUtils(prtcl)
self.utils = utils.VMAXUtils(prtcl)
def delete_volume_from_pool(
self, conn, storageConfigservice, volumeInstanceName, volumeName,

View File

@ -70,7 +70,7 @@ IS_RE = 'replication_enabled'
REPLICATION_FAILOVER = fields.ReplicationStatus.FAILED_OVER
class EMCVMAXUtils(object):
class VMAXUtils(object):
"""Utility class for SMI-S based EMC volume drivers.
This Utility class is for EMC volume drivers based on SMI-S.
@ -2048,9 +2048,9 @@ class EMCVMAXUtils(object):
portGroupName = portGroupElement.childNodes[0].nodeValue
if portGroupName:
portGroupNames.append(portGroupName.strip())
portGroupNames = EMCVMAXUtils._filter_list(portGroupNames)
portGroupNames = VMAXUtils._filter_list(portGroupNames)
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."))
LOG.error(exception_message)

View File

@ -165,6 +165,10 @@ MAPPING = {
'cinder.volume.drivers.dell_emc.xtremio.XtremIOFCDriver',
'cinder.volume.drivers.datera.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.