CI: Add CI_WIKI_NAME to all drivers

This patch adds a CI_WIKI_NAME to each driver object.  The value is the exact
name of the ThirdPartySystems wiki page.   This allows us to create an
automated tool to associated jobs to drivers and track their CI reporting
status correctly.

This patch also updates the generate_driver_list.py script to output the
driver list as a python list of dicts that can be directly consumed.

Change-Id: I0ec5f705e91f680a731648cf50738ea219565f70
This commit is contained in:
Walter A. Boring IV 2016-07-27 05:04:58 -07:00
parent 4559058147
commit 1a5de5d4bd
89 changed files with 311 additions and 14 deletions

View File

@ -67,6 +67,7 @@ class DriverInfo(object):
self.class_fqn = '{}.{}'.format(inspect.getmodule(cls).__name__,
self.class_name)
self.version = getattr(cls, 'VERSION', None)
self.ci_wiki_name = getattr(cls, 'CI_WIKI_NAME', None)
def __str__(self):
return self.class_name

View File

@ -48,6 +48,9 @@ class BlockDeviceDriver(driver.BaseVD, driver.LocalVD,
driver.CloneableImageVD, driver.TransferVD):
VERSION = '2.3.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
def __init__(self, *args, **kwargs):
super(BlockDeviceDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(volume_opts)

View File

@ -175,6 +175,9 @@ class BlockbridgeISCSIDriver(driver.ISCSIDriver):
VERSION = '1.3.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Blockbridge_EPS_CI"
def __init__(self, *args, **kwargs):
super(BlockbridgeISCSIDriver, self).__init__(*args, **kwargs)

View File

@ -48,6 +48,7 @@ class CloudByteISCSIDriver(san.SanISCSIDriver):
"""
VERSION = '1.2.0'
CI_WIKI_NAME = "CloudByte_CI"
volume_stats = {}
def __init__(self, *args, **kwargs):

View File

@ -327,6 +327,9 @@ class CohoDriver(nfs.NfsDriver):
COHO_QOS_KEYS = ['maxIOPS', 'maxMBS']
# ThirdPartySystems wiki page name
CI_WIKI_NAME = "Coho_Data_CI"
def __init__(self, *args, **kwargs):
super(CohoDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(coho_opts)

View File

@ -33,6 +33,9 @@ class EMCCoprHDFCDriver(driver.FibreChannelDriver):
"""CoprHD FC Driver."""
VERSION = "3.0.0.0"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "EMC_CoprHD_CI"
def __init__(self, *args, **kwargs):
super(EMCCoprHDFCDriver, self).__init__(*args, **kwargs)
self.common = self._get_common_driver()

View File

@ -31,6 +31,9 @@ class EMCCoprHDISCSIDriver(driver.ISCSIDriver):
"""CoprHD iSCSI Driver."""
VERSION = "3.0.0.0"
# ThirdPartySystems wiki page name
CI_WIKI_NAME = "EMC_CoprHD_CI"
def __init__(self, *args, **kwargs):
super(EMCCoprHDISCSIDriver, self).__init__(*args, **kwargs)
self.common = self._get_common_driver()

View File

@ -64,6 +64,9 @@ class EMCCoprHDScaleIODriver(driver.VolumeDriver):
VERSION = "3.0.0.0"
server_token = None
# ThirdPartySystems wiki page
CI_WIKI_NAME = "EMC_CoprHD_CI"
def __init__(self, *args, **kwargs):
super(EMCCoprHDScaleIODriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(scaleio_opts)

View File

@ -126,6 +126,8 @@ class DateraDriver(san.SanISCSIDriver):
"""
VERSION = '2.1'
CI_WIKI_NAME = "datera-ci"
def __init__(self, *args, **kwargs):
super(DateraDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(d_opts)

View File

@ -60,6 +60,8 @@ class DellStorageCenterFCDriver(dell_storagecenter_common.DellCommonDriver,
VERSION = '3.2.0'
CI_WIKI_NAME = "Dell_Storage_CI"
def __init__(self, *args, **kwargs):
super(DellStorageCenterFCDriver, self).__init__(*args, **kwargs)
self.backend_name =\

View File

@ -58,6 +58,7 @@ class DellStorageCenterISCSIDriver(dell_storagecenter_common.DellCommonDriver,
"""
VERSION = '3.2.0'
CI_WIKI_NAME = "Dell_Storage_CI"
def __init__(self, *args, **kwargs):
super(DellStorageCenterISCSIDriver, self).__init__(*args, **kwargs)

View File

@ -88,6 +88,7 @@ class DiscoDriver(driver.VolumeDriver):
"""Execute commands related to DISCO Volumes."""
VERSION = "1.0"
CI_WIKI_NAME = "ITRI_DISCO_CI"
def __init__(self, *args, **kwargs):
"""Init Disco driver : get configuration, create client."""

View File

@ -41,6 +41,9 @@ class DotHillFCDriver(cinder.volume.driver.FibreChannelDriver):
VERSION = "1.0"
# ThirdPartySystems CI wiki
CI_WIKI_NAME = "Vedams_DotHillDriver_CI"
def __init__(self, *args, **kwargs):
super(DotHillFCDriver, self).__init__(*args, **kwargs)
self.common = None

View File

@ -50,6 +50,9 @@ class DotHillISCSIDriver(cinder.volume.driver.ISCSIDriver):
VERSION = "1.0"
# ThirdPartySystems CI wiki
CI_WIKI_NAME = "Vedams_DotHillDriver_CI"
def __init__(self, *args, **kwargs):
super(DotHillISCSIDriver, self).__init__(*args, **kwargs)
self.common = None

View File

@ -130,6 +130,9 @@ class DrbdManageBaseDriver(driver.VolumeDriver):
drbdmanage_dbus_name = 'org.drbd.drbdmanaged'
drbdmanage_dbus_interface = '/interface'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
def __init__(self, *args, **kwargs):
self.empty_list = dbus.Array([], signature="a(s)")
self.empty_dict = dbus.Array([], signature="a(ss)")

View File

@ -74,6 +74,9 @@ class EMCVMAXFCDriver(driver.FibreChannelDriver):
VERSION = "2.4.0"
# ThirdPartySystems wiki
CI_WIKI_NAME = "EMC_VMAX_CI"
def __init__(self, *args, **kwargs):
super(EMCVMAXFCDriver, self).__init__(*args, **kwargs)

View File

@ -80,6 +80,9 @@ class EMCVMAXISCSIDriver(driver.ISCSIDriver):
VERSION = "2.4.0"
# ThirdPartySystems wiki
CI_WIKI_NAME = "EMC_VMAX_CI"
def __init__(self, *args, **kwargs):
super(EMCVMAXISCSIDriver, self).__init__(*args, **kwargs)

View File

@ -100,6 +100,10 @@ class ScaleIODriver(driver.VolumeDriver):
"""EMC ScaleIO Driver."""
VERSION = "2.0"
# ThirdPartySystems wiki
CI_WIKI_NAME = "EMC_ScaleIO_CI"
scaleio_qos_keys = (QOS_IOPS_LIMIT_KEY, QOS_BANDWIDTH_LIMIT,
QOS_IOPS_PER_GB, QOS_BANDWIDTH_PER_GB)

View File

@ -77,6 +77,8 @@ class EMCVNXDriver(driver.TransferVD,
VERSION = '08.00.00'
VENDOR = 'EMC'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "EMC_VNX_CI"
def __init__(self, *args, **kwargs):
super(EMCVNXDriver, self).__init__(*args, **kwargs)

View File

@ -361,6 +361,10 @@ class XtremIOVolumeDriver(san.SanDriver):
"""Executes commands relating to Volumes."""
VERSION = '1.0.7'
# ThirdPartySystems wiki
CI_WIKI_NAME = "EMC_XIO_CI"
driver_name = 'XtremIO'
MIN_XMS_VERSION = [3, 0, 0]

View File

@ -162,6 +162,9 @@ class DellEQLSanISCSIDriver(san.SanISCSIDriver):
VERSION = "1.3.0"
# ThirdPartySytems wiki page
CI_WIKI_NAME = "Dell_Storage_CI"
def __init__(self, *args, **kwargs):
super(DellEQLSanISCSIDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(eqlx_opts)

View File

@ -44,6 +44,9 @@ class FSSFCDriver(fss_common.FalconstorBaseDriver,
VERSION = '1.0.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "FalconStor_CI"
def __init__(self, *args, **kwargs):
super(FSSFCDriver, self).__init__(*args, **kwargs)
self.gateway_fc_wwns = []

View File

@ -51,6 +51,9 @@ class FSSISCSIDriver(fss_common.FalconstorBaseDriver,
VERSION = '3.0.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "FalconStor_CI"
def __init__(self, *args, **kwargs):
super(FSSISCSIDriver, self).__init__(*args, **kwargs)
self._storage_protocol = "iSCSI"

View File

@ -34,6 +34,9 @@ LOG = logging.getLogger(__name__)
class FJDXFCDriver(driver.FibreChannelDriver):
"""FC Cinder Volume Driver for Fujitsu ETERNUS DX S3 series."""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Fujitsu_ETERNUS_CI"
def __init__(self, *args, **kwargs):
super(FJDXFCDriver, self).__init__(*args, **kwargs)

View File

@ -34,6 +34,9 @@ LOG = logging.getLogger(__name__)
class FJDXISCSIDriver(driver.ISCSIDriver):
"""iSCSI Cinder Volume Driver for Fujitsu ETERNUS DX S3 series."""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Fujitsu_ETERNUS_CI"
def __init__(self, *args, **kwargs):
super(FJDXISCSIDriver, self).__init__(*args, **kwargs)

View File

@ -69,6 +69,9 @@ class DSWAREDriver(driver.VolumeDriver):
"""Huawei FusionStorage Driver."""
VERSION = '1.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Huawei_volume_CI"
DSWARE_VOLUME_CREATE_SUCCESS_STATUS = 0
DSWARE_VOLUME_DUPLICATE_VOLUME = 6
DSWARE_VOLUME_CREATING_STATUS = 7

View File

@ -66,6 +66,9 @@ class GlusterfsDriver(remotefs_drv.RemoteFSSnapDriverDistributed,
volume_backend_name = 'GlusterFS'
VERSION = '1.3.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
def __init__(self, execute=processutils.execute, *args, **kwargs):
self._remotefsclient = None
super(GlusterfsDriver, self).__init__(*args, **kwargs)

View File

@ -85,6 +85,10 @@ class HGSTDriver(driver.VolumeDriver):
"""
VERSION = '1.0.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "HGST_Solutions_CI"
VGCCLUSTER = 'vgc-cluster'
SPACEGB = units.G - 16 * units.M # Workaround for shrinkage Bug 28320
BLOCKED = "BLOCKED" # Exit code when a command is blocked

View File

@ -49,6 +49,9 @@ CONF.register_opts(volume_opts)
class HBSDFCDriver(cinder.volume.driver.FibreChannelDriver):
VERSION = common.VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = ["Hitachi_HBSD_CI", "Hitachi_HBSD2_CI"]
def __init__(self, *args, **kwargs):
os.environ['LANG'] = 'C'
super(HBSDFCDriver, self).__init__(*args, **kwargs)

View File

@ -57,6 +57,9 @@ CONF.register_opts(volume_opts)
class HBSDISCSIDriver(cinder.volume.driver.ISCSIDriver):
VERSION = common.VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = ["Hitachi_HBSD_CI", "Hitachi_HBSD2_CI"]
def __init__(self, *args, **kwargs):
os.environ['LANG'] = 'C'
super(HBSDISCSIDriver, self).__init__(*args, **kwargs)

View File

@ -77,6 +77,9 @@ class HNASISCSIDriver(driver.ISCSIDriver):
Changed the class name to HNASISCSIDriver
"""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Hitachi_HNAS_CI"
def __init__(self, *args, **kwargs):
"""Initializes and reads different config parameters."""
self.configuration = kwargs.get('configuration', None)

View File

@ -75,6 +75,8 @@ class HNASNFSDriver(nfs.NfsDriver):
Updated to use versioned objects
Changed the class name to HNASNFSDriver
"""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Hitachi_HNAS_CI"
def __init__(self, *args, **kwargs):
self._execute = None

View File

@ -116,6 +116,9 @@ class HPE3PARFCDriver(driver.TransferVD,
VERSION = "3.0.9"
# The name of the CI wiki page.
CI_WIKI_NAME = "HPE_Storage_CI"
def __init__(self, *args, **kwargs):
super(HPE3PARFCDriver, self).__init__(*args, **kwargs)
self._active_backend_id = kwargs.get('active_backend_id', None)

View File

@ -122,6 +122,9 @@ class HPE3PARISCSIDriver(driver.TransferVD,
VERSION = "3.0.11"
# The name of the CI wiki page.
CI_WIKI_NAME = "HPE_Storage_CI"
def __init__(self, *args, **kwargs):
super(HPE3PARISCSIDriver, self).__init__(*args, **kwargs)
self._active_backend_id = kwargs.get('active_backend_id', None)

View File

@ -162,6 +162,8 @@ class HPELeftHandISCSIDriver(driver.ISCSIDriver):
VERSION = "2.0.9"
CI_WIKI_NAME = "HPE_Storage_CI"
device_stats = {}
# v2 replication constants

View File

@ -31,6 +31,9 @@ _DRIVER_CLASS = 'hpe_xp_horcm_fc.HPEXPHORCMFC'
class HPEXPFCDriver(driver.FibreChannelDriver):
"""OpenStack Fibre Channel driver to enable HPE XP storage."""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "XP_Storage_CI"
def __init__(self, *args, **kwargs):
"""Initialize the driver."""
super(HPEXPFCDriver, self).__init__(*args, **kwargs)

View File

@ -80,6 +80,9 @@ Volume = collections.namedtuple('Volume', vol_attrs)
class HuaweiBaseDriver(driver.VolumeDriver):
# ThirdPartySytems wiki page
CI_WIKI_NAME = "Huawei_volume_CI"
def __init__(self, *args, **kwargs):
super(HuaweiBaseDriver, self).__init__(*args, **kwargs)

View File

@ -83,6 +83,9 @@ class FlashSystemFCDriver(fscommon.FlashSystemDriver):
VERSION = "1.0.11"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "IBM_FlashSystem_CI"
def __init__(self, *args, **kwargs):
super(FlashSystemFCDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(fscommon.flashsystem_opts)

View File

@ -81,6 +81,9 @@ class FlashSystemISCSIDriver(fscommon.FlashSystemDriver):
VERSION = "1.0.11"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "IBM_FlashSystem_CI"
def __init__(self, *args, **kwargs):
super(FlashSystemISCSIDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(fscommon.flashsystem_opts)

View File

@ -124,6 +124,9 @@ class GPFSDriver(driver.ConsistencyGroupVD, driver.ExtendVD,
VERSION = "1.3.1"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "IBM_GPFS_CI"
def __init__(self, *args, **kwargs):
super(GPFSDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(gpfs_opts)

View File

@ -74,6 +74,9 @@ class IBMStorageDriver(san.SanDriver,
systems.
"""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "IBM_XIV-DS8K_CI"
def __init__(self, *args, **kwargs):
"""Initialize the driver."""

View File

@ -92,6 +92,9 @@ class StorwizeSVCFCDriver(storwize_common.StorwizeSVCCommonDriver):
VERSION = "2.1.1"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "IBM_STORWIZE_CI"
def __init__(self, *args, **kwargs):
super(StorwizeSVCFCDriver, self).__init__(*args, **kwargs)
self.protocol = 'FC'

View File

@ -92,6 +92,9 @@ class StorwizeSVCISCSIDriver(storwize_common.StorwizeSVCCommonDriver):
VERSION = "2.1.1"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "IBM_STORWIZE_CI"
def __init__(self, *args, **kwargs):
super(StorwizeSVCISCSIDriver, self).__init__(*args, **kwargs)
self.protocol = 'iSCSI'

View File

@ -37,6 +37,9 @@ class InfortrendCLIFCDriver(driver.FibreChannelDriver):
1.0.1 - Support DS4000
"""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Infortrend_Storage_CI"
def __init__(self, *args, **kwargs):
super(InfortrendCLIFCDriver, self).__init__(*args, **kwargs)
self.common = common_cli.InfortrendCommon(

View File

@ -35,6 +35,9 @@ class InfortrendCLIISCSIDriver(driver.ISCSIDriver):
1.0.1 - Support DS4000
"""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Infortrend_Storage_CI"
def __init__(self, *args, **kwargs):
super(InfortrendCLIISCSIDriver, self).__init__(*args, **kwargs)
self.common = common_cli.InfortrendCommon(

View File

@ -39,6 +39,9 @@ class KaminarioFCDriver(common.KaminarioCinderDriver):
VERSION = '1.3'
# ThirdPartySystems wiki page name
CI_WIKI_NAME = "Kaminario_K2_CI"
@kaminario_logger
def __init__(self, *args, **kwargs):
super(KaminarioFCDriver, self).__init__(*args, **kwargs)

View File

@ -41,6 +41,9 @@ class KaminarioISCSIDriver(common.KaminarioCinderDriver):
VERSION = '1.3'
# ThirdPartySystems wiki page name
CI_WIKI_NAME = "Kaminario_K2_CI"
@kaminario_logger
def __init__(self, *args, **kwargs):
super(KaminarioISCSIDriver, self).__init__(*args, **kwargs)

View File

@ -30,6 +30,9 @@ class LenovoFCDriver(dothill_fc.DotHillFCDriver):
VERSION = "1.0"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Vedams-LenovoStorage_FCISCSI_CI"
def __init__(self, *args, **kwargs):
super(LenovoFCDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(lenovo_common.common_opts)

View File

@ -30,6 +30,9 @@ class LenovoISCSIDriver(dothill_iscsi.DotHillISCSIDriver):
VERSION = "1.0"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Vedams-LenovoStorage_FCISCSI_CI"
def __init__(self, *args, **kwargs):
super(LenovoISCSIDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(lenovo_common.common_opts)

View File

@ -82,6 +82,9 @@ class LVMVolumeDriver(driver.VolumeDriver):
VERSION = '3.0.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
def __init__(self, vg_obj=None, *args, **kwargs):
# Parent sets db, host, _execute and base config
super(LVMVolumeDriver, self).__init__(*args, **kwargs)

View File

@ -33,6 +33,9 @@ class NetApp7modeFibreChannelDriver(driver.BaseVD,
DRIVER_NAME = 'NetApp_FibreChannel_7mode_direct'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
def __init__(self, *args, **kwargs):
super(NetApp7modeFibreChannelDriver, self).__init__(*args, **kwargs)
self.library = block_7mode.NetAppBlockStorage7modeLibrary(

View File

@ -33,6 +33,9 @@ class NetAppCmodeFibreChannelDriver(driver.BaseVD,
DRIVER_NAME = 'NetApp_FibreChannel_Cluster_direct'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
def __init__(self, *args, **kwargs):
super(NetAppCmodeFibreChannelDriver, self).__init__(*args, **kwargs)
self.library = block_cmode.NetAppBlockStorageCmodeLibrary(

View File

@ -32,6 +32,9 @@ class NetApp7modeISCSIDriver(driver.BaseVD,
DRIVER_NAME = 'NetApp_iSCSI_7mode_direct'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
def __init__(self, *args, **kwargs):
super(NetApp7modeISCSIDriver, self).__init__(*args, **kwargs)
self.library = block_7mode.NetAppBlockStorage7modeLibrary(

View File

@ -32,6 +32,9 @@ class NetAppCmodeISCSIDriver(driver.BaseVD,
DRIVER_NAME = 'NetApp_iSCSI_Cluster_direct'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
def __init__(self, *args, **kwargs):
super(NetAppCmodeISCSIDriver, self).__init__(*args, **kwargs)
self.library = block_cmode.NetAppBlockStorageCmodeLibrary(

View File

@ -45,6 +45,9 @@ LOG = logging.getLogger(__name__)
class NetApp7modeNfsDriver(nfs_base.NetAppNfsDriver):
"""NetApp NFS driver for Data ONTAP (7-mode)."""
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
def __init__(self, *args, **kwargs):
super(NetApp7modeNfsDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(na_opts.netapp_7mode_opts)

View File

@ -60,6 +60,10 @@ class NetAppNfsDriver(driver.ManageableVD,
# do not increment this as it may be used in volume type definitions
VERSION = "1.0.0"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
REQUIRED_FLAGS = ['netapp_login', 'netapp_password',
'netapp_server_hostname']
DEFAULT_FILTER_FUNCTION = 'capabilities.utilization < 70'

View File

@ -34,6 +34,9 @@ class NetAppEseriesFibreChannelDriver(driver.BaseVD,
DRIVER_NAME = 'NetApp_FibreChannel_ESeries'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
def __init__(self, *args, **kwargs):
super(NetAppEseriesFibreChannelDriver, self).__init__(*args, **kwargs)
na_utils.validate_instantiation(**kwargs)

View File

@ -35,6 +35,9 @@ class NetAppEseriesISCSIDriver(driver.BaseVD,
DRIVER_NAME = 'NetApp_iSCSI_ESeries'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "NetApp_CI"
def __init__(self, *args, **kwargs):
super(NetAppEseriesISCSIDriver, self).__init__(*args, **kwargs)
na_utils.validate_instantiation(**kwargs)

View File

@ -56,6 +56,9 @@ class NexentaISCSIDriver(driver.ISCSIDriver):
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Nexenta_CI"
def __init__(self, *args, **kwargs):
super(NexentaISCSIDriver, self).__init__(*args, **kwargs)
self.nms = None

View File

@ -43,6 +43,9 @@ class NexentaEdgeISCSIDriver(driver.ISCSIDriver):
VERSION = '1.0.2'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Nexenta_Edge_CI"
def __init__(self, *args, **kwargs):
super(NexentaEdgeISCSIDriver, self).__init__(*args, **kwargs)
if self.configuration:

View File

@ -46,6 +46,9 @@ class NexentaEdgeNBDDriver(driver.VolumeDriver):
VERSION = '1.0.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Nexenta_Edge_CI"
def __init__(self, vg_obj=None, *args, **kwargs):
LOG.debug('NexentaEdgeNBDDriver. Trying to initialize.')
super(NexentaEdgeNBDDriver, self).__init__(*args, **kwargs)

View File

@ -60,6 +60,9 @@ class NexentaNfsDriver(nfs.NfsDriver): # pylint: disable=R0921
VERSION = VERSION
VOLUME_FILE_NAME = 'volume'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Nexenta_CI"
def __init__(self, *args, **kwargs):
super(NexentaNfsDriver, self).__init__(*args, **kwargs)
if self.configuration:

View File

@ -40,6 +40,9 @@ class NexentaISCSIDriver(driver.ISCSIDriver): # pylint: disable=R0921
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Nexenta_CI"
def __init__(self, *args, **kwargs):
super(NexentaISCSIDriver, self).__init__(*args, **kwargs)
self.nef = None

View File

@ -44,6 +44,9 @@ class NexentaNfsDriver(nfs.NfsDriver): # pylint: disable=R0921
volume_backend_name = 'NexentaNfsDriver'
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Nexenta_CI"
def __init__(self, *args, **kwargs):
super(NexentaNfsDriver, self).__init__(*args, **kwargs)
if self.configuration:

View File

@ -76,6 +76,9 @@ class NfsDriver(driver.ExtendVD, remotefs.RemoteFSDriver):
volume_backend_name = 'Generic_NFS'
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
def __init__(self, execute=putils.execute, *args, **kwargs):
self._remotefsclient = None
super(NfsDriver, self).__init__(*args, **kwargs)

View File

@ -107,6 +107,9 @@ class NimbleISCSIDriver(san.SanISCSIDriver):
VERSION = DRIVER_VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Nimble_Storage_CI"
def __init__(self, *args, **kwargs):
super(NimbleISCSIDriver, self).__init__(*args, **kwargs)
self.APIExecutor = None

View File

@ -703,6 +703,9 @@ class DPLCOMMONDriver(driver.ConsistencyGroupVD, driver.ExtendVD,
"""Class of dpl storage adapter."""
VERSION = '2.0.4'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "ProphetStor_CI"
def __init__(self, *args, **kwargs):
super(DPLCOMMONDriver, self).__init__(*args, **kwargs)
if self.configuration:

View File

@ -146,6 +146,9 @@ class PureBaseVolumeDriver(san.SanDriver):
SUPPORTED_REST_API_VERSIONS = ['1.2', '1.3', '1.4', '1.5']
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Pure_Storage_CI"
def __init__(self, *args, **kwargs):
execute = kwargs.pop("execute", utils.execute)
super(PureBaseVolumeDriver, self).__init__(execute=execute, *args,

View File

@ -86,6 +86,9 @@ class QuobyteDriver(remotefs_drv.RemoteFSSnapDriver):
volume_backend_name = 'Quobyte'
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Quobyte_CI"
def __init__(self, execute=processutils.execute, *args, **kwargs):
super(QuobyteDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(volume_opts)

View File

@ -270,6 +270,9 @@ class RBDDriver(driver.TransferVD, driver.ExtendVD,
VERSION = '1.2.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
def __init__(self, *args, **kwargs):
super(RBDDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(RBD_OPTS)

View File

@ -67,6 +67,9 @@ class ScalityDriver(remotefs_drv.RemoteFSSnapDriver):
volume_backend_name = 'Scality_SOFS'
VERSION = '2.0.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Scality_CI"
def __init__(self, *args, **kwargs):
super(ScalityDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(volume_opts)

View File

@ -439,6 +439,9 @@ class SheepdogDriver(driver.VolumeDriver):
VERSION = "1.0.0"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
def __init__(self, *args, **kwargs):
super(SheepdogDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(sheepdog_opts)

View File

@ -108,6 +108,9 @@ class SmbfsDriver(remotefs_drv.RemoteFSSnapDriver):
SHARE_FORMAT_REGEX = r'//.+/.+'
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Cinder_Jenkins"
_MINIMUM_QEMU_IMG_VERSION = '1.7'
_DISK_FORMAT_VHD = 'vhd'

View File

@ -157,6 +157,10 @@ class SolidFireDriver(san.SanISCSIDriver):
"""
VERSION = '2.0.6'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "SolidFire_CI"
driver_prefix = 'solidfire'
sf_qos_dict = {'slow': {'minIOPS': 100,

View File

@ -86,6 +86,9 @@ class TintriDriver(driver.ManageableVD,
VENDOR = 'Tintri'
VERSION = '2.2.0.1'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Tintri_CI"
REQUIRED_OPTIONS = ['tintri_server_hostname', 'tintri_server_username',
'tintri_server_password']

View File

@ -61,6 +61,9 @@ class V7000FCPDriver(driver.FibreChannelDriver):
VERSION = '1.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Violin_Memory_CI"
def __init__(self, *args, **kwargs):
super(V7000FCPDriver, self).__init__(*args, **kwargs)
self.gateway_fc_wwns = []

View File

@ -54,6 +54,9 @@ class V7000ISCSIDriver(driver.ISCSIDriver):
VERSION = '1.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Violin_Memory_CI"
def __init__(self, *args, **kwargs):
super(V7000ISCSIDriver, self).__init__(*args, **kwargs)
self.stats = {}

View File

@ -221,6 +221,9 @@ class VMwareVcVmdkDriver(driver.VolumeDriver):
# 1.6.0 - support for manage existing
VERSION = '1.6.0'
# ThirdaPartySystems wiki page
CI_WIKI_NAME = "VMware_CI"
# Minimum supported vCenter version.
MIN_SUPPORTED_VC_VERSION = dist_version.LooseVersion('5.1')

View File

@ -133,6 +133,9 @@ class VZStorageDriver(remotefs_drv.RemoteFSSnapDriver):
driver_prefix = 'vzstorage'
volume_backend_name = 'Virtuozzo_Storage'
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Virtuozzo_Storage_CI"
SHARE_FORMAT_REGEX = r'(?:(\S+):\/)?([a-zA-Z0-9_-]+)(?::(\S+))?'
def __init__(self, execute=putils.execute, *args, **kwargs):

View File

@ -46,6 +46,10 @@ CONF.set_default('smbfs_default_volume_format', 'vhd')
@interface.volumedriver
class WindowsSmbfsDriver(smbfs.SmbfsDriver):
VERSION = VERSION
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Microsoft_iSCSI_CI"
_MINIMUM_QEMU_IMG_VERSION = '1.6'
def __init__(self, *args, **kwargs):

View File

@ -50,6 +50,9 @@ class WindowsDriver(driver.ISCSIDriver):
VERSION = '1.0.0'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Microsoft_iSCSI_CI"
def __init__(self, *args, **kwargs):
super(WindowsDriver, self).__init__(*args, **kwargs)
self.configuration = kwargs.get('configuration', None)

View File

@ -74,6 +74,9 @@ class XIOISEDriver(object):
# 1.1.3 Wait for volume/snapshot to be deleted.
# 1.1.4 Force target_lun to be int (Bug 1549048)
# ThirdPartySystems wiki page
CI_WIKI_NAME = "X-IO_technologies_CI"
def __init__(self, *args, **kwargs):
super(XIOISEDriver, self).__init__()
LOG.debug("XIOISEDriver __init__ called.")

View File

@ -267,6 +267,9 @@ class ZadaraVPSAISCSIDriver(driver.ISCSIDriver):
VERSION = '15.07'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "ZadaraStorage_VPSA_CI"
def __init__(self, *args, **kwargs):
super(ZadaraVPSAISCSIDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(zadara_opts)

View File

@ -123,6 +123,9 @@ class ZFSSAISCSIDriver(driver.ISCSIDriver):
VERSION = '1.0.2'
protocol = 'iSCSI'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Oracle_ZFSSA_CI"
def __init__(self, *args, **kwargs):
super(ZFSSAISCSIDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(ZFSSA_OPTS)

View File

@ -95,6 +95,9 @@ class ZFSSANFSDriver(nfs.NfsDriver):
volume_backend_name = 'ZFSSA_NFS'
protocol = driver_prefix = driver_volume_type = 'nfs'
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Oracle_ZFSSA_CI"
def __init__(self, *args, **kwargs):
super(ZFSSANFSDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(ZFSSA_OPTS)

View File

@ -85,6 +85,7 @@ CONF.register_opts(zte_opts)
@interface.volumedriver
class ZTEVolumeDriver(driver.VolumeDriver):
def __init__(self, *args, **kwargs):
super(ZTEVolumeDriver, self).__init__(*args, **kwargs)
self.configuration.append_config_values(zte_opts)

View File

@ -76,6 +76,9 @@ class BrcdFCZoneDriver(fc_zone_driver.FCZoneDriver):
VERSION = "1.5"
# ThirdPartySystems wiki page
CI_WIKI_NAME = "Brocade_OpenStack_CI"
def __init__(self, **kwargs):
super(BrcdFCZoneDriver, self).__init__(**kwargs)
self.sb_conn_map = {}

View File

@ -71,6 +71,9 @@ class CiscoFCZoneDriver(fc_zone_driver.FCZoneDriver):
VERSION = "1.1.0"
# ThirdPartySystems wiki name
CI_WIKI_NAME = "Cisco_ZM_CI"
def __init__(self, **kwargs):
super(CiscoFCZoneDriver, self).__init__(**kwargs)
self.configuration = kwargs.get('configuration', None)

View File

@ -14,19 +14,29 @@
"""Generate list of cinder drivers"""
import argparse
import os
import sys
from cinder.interface import util
parser = argparse.ArgumentParser(prog="generate_driver_list")
parser.add_argument("--format", default='str', choices=['str', 'dict'],
help="Output format type")
# Keep backwards compatibilty with the gate-docs test
# The tests pass ['docs'] on the cmdln, but it's never been used.
parser.add_argument("output_list", default=None, nargs='?')
class Output(object):
def __init__(self, base_dir):
def __init__(self, base_dir, output_list):
# At this point we don't care what was passed in, just a trigger
# to write this out to the doc tree for now
self.driver_file = None
if len(sys.argv) > 1:
if output_list:
self.driver_file = open(
'%s/doc/source/drivers.rst' % base_dir, 'w+')
self.driver_file.write('===================\n')
@ -67,25 +77,57 @@ def print_drivers(drivers, config_name, output):
output.write('')
def output_str(cinder_root, args):
with Output(cinder_root, args.output_list) as output:
output.write('Volume Drivers')
output.write('==============')
print_drivers(util.get_volume_drivers(), 'volume_driver', output)
output.write('Backup Drivers')
output.write('==============')
print_drivers(util.get_backup_drivers(), 'backup_driver', output)
output.write('FC Zone Manager Drivers')
output.write('=======================')
print_drivers(util.get_fczm_drivers(), 'zone_driver', output)
def collect_driver_info(driver):
"""Build the dictionary that describes this driver."""
info = {'name': driver.class_name,
'version': driver.version,
'fqn': driver.class_fqn,
'description': driver.desc,
'ci_wiki_name': driver.ci_wiki_name}
return info
def output_dict():
import pprint
driver_list = []
drivers = util.get_volume_drivers()
for driver in drivers:
driver_list.append(collect_driver_info(driver))
pprint.pprint(driver_list)
def main():
tools_dir = os.path.dirname(os.path.abspath(__file__))
cinder_root = os.path.dirname(tools_dir)
cur_dir = os.getcwd()
os.chdir(cinder_root)
args = parser.parse_args()
try:
with Output(cinder_root) as output:
output.write('Volume Drivers')
output.write('==============')
print_drivers(util.get_volume_drivers(), 'volume_driver', output)
if args.format == 'str':
output_str(cinder_root, args)
elif args.format == 'dict':
output_dict()
output.write('Backup Drivers')
output.write('==============')
print_drivers(util.get_backup_drivers(), 'backup_driver', output)
output.write('FC Zone Manager Drivers')
output.write('=======================')
print_drivers(util.get_fczm_drivers(), 'zone_driver', output)
finally:
os.chdir(cur_dir)