Merge "Fix cacheable capability"
This commit is contained in:
commit
2611f67393
@ -29,3 +29,33 @@ LOG_BINARIES = (SCHEDULER_BINARY, VOLUME_BINARY, BACKUP_BINARY, API_BINARY)
|
||||
|
||||
# The encryption key ID used by the legacy fixed-key ConfKeyMgr
|
||||
FIXED_KEY_ID = '00000000-0000-0000-0000-000000000000'
|
||||
|
||||
# Storage protocol constants
|
||||
CEPH = 'ceph'
|
||||
DRBD = 'DRBD'
|
||||
FC = 'FC'
|
||||
FC_VARIANT_1 = 'fibre_channel'
|
||||
FC_VARIANT_2 = 'fc'
|
||||
FILE = 'file'
|
||||
ISCSI = 'iSCSI'
|
||||
ISCSI_VARIANT = 'iscsi'
|
||||
ISER = 'iSER'
|
||||
LIGHTOS = 'lightos'
|
||||
NFS = 'NFS'
|
||||
NFS_VARIANT = 'nfs'
|
||||
NVMEOF = 'NVMe-oF'
|
||||
NVMEOF_VARIANT_1 = 'NVMeOF'
|
||||
NVMEOF_VARIANT_2 = 'nvmeof'
|
||||
SCALEIO = 'scaleio'
|
||||
SCSI = 'SCSI'
|
||||
STORPOOL = 'storpool'
|
||||
VMDK = 'vmdk'
|
||||
VSTORAGE = 'vstorageobject'
|
||||
|
||||
# These must be strings, because there are places that check specific type
|
||||
ISCSI_VARIANTS = [ISCSI, ISCSI_VARIANT]
|
||||
FC_VARIANTS = [FC, FC_VARIANT_1, FC_VARIANT_2]
|
||||
NFS_VARIANTS = [NFS, NFS_VARIANT]
|
||||
NVMEOF_VARIANTS = [NVMEOF, NVMEOF_VARIANT_1, NVMEOF_VARIANT_2]
|
||||
|
||||
CACHEABLE_PROTOCOLS = FC_VARIANTS + ISCSI_VARIANTS + NVMEOF_VARIANTS
|
||||
|
@ -25,6 +25,7 @@ from oslo_config import types
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import db
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -221,8 +222,8 @@ volume_opts = [
|
||||
'directly, it will only notify that it can be used.'),
|
||||
cfg.StrOpt('storage_protocol',
|
||||
ignore_case=True,
|
||||
default='iscsi',
|
||||
choices=['iscsi', 'fc'],
|
||||
default=constants.ISCSI,
|
||||
choices=[constants.ISCSI, constants.FC],
|
||||
help='Protocol for transferring data between host and '
|
||||
'storage back-end.'),
|
||||
cfg.BoolOpt('enable_unsupported_driver',
|
||||
@ -2805,7 +2806,7 @@ class ISCSIDriver(VolumeDriver):
|
||||
data["volume_backend_name"] = backend_name or 'Generic_iSCSI'
|
||||
data["vendor_name"] = 'Open Source'
|
||||
data["driver_version"] = '1.0'
|
||||
data["storage_protocol"] = 'iSCSI'
|
||||
data["storage_protocol"] = constants.ISCSI
|
||||
data["pools"] = []
|
||||
data["replication_enabled"] = False
|
||||
|
||||
@ -2874,7 +2875,7 @@ class ISERDriver(ISCSIDriver):
|
||||
data["volume_backend_name"] = backend_name or 'Generic_iSER'
|
||||
data["vendor_name"] = 'Open Source'
|
||||
data["driver_version"] = '1.0'
|
||||
data["storage_protocol"] = 'iSER'
|
||||
data["storage_protocol"] = constants.ISER
|
||||
data["pools"] = []
|
||||
|
||||
self._update_pools_and_stats(data)
|
||||
@ -2950,7 +2951,7 @@ class FibreChannelDriver(VolumeDriver):
|
||||
data["volume_backend_name"] = backend_name or 'Generic_FC'
|
||||
data["vendor_name"] = 'Open Source'
|
||||
data["driver_version"] = '1.0'
|
||||
data["storage_protocol"] = 'FC'
|
||||
data["storage_protocol"] = constants.FC
|
||||
data["pools"] = []
|
||||
|
||||
self._update_pools_and_stats(data)
|
||||
|
@ -17,6 +17,7 @@ from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import netutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -72,7 +73,7 @@ class RBDISCSIDriver(rbd.RBDDriver):
|
||||
|
||||
SUPPORTS_ACTIVE_ACTIVE = True
|
||||
|
||||
STORAGE_PROTOCOL = 'iSCSI'
|
||||
STORAGE_PROTOCOL = constants.ISCSI
|
||||
CHAP_LENGTH = 16
|
||||
|
||||
# The target IQN to use for creating all exports
|
||||
|
@ -28,6 +28,7 @@ from oslo_utils import importutils
|
||||
from oslo_utils import units
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.image import image_utils
|
||||
@ -975,7 +976,7 @@ class DateraApi(object):
|
||||
'volume_backend_name': self.backend_name,
|
||||
'vendor_name': 'Datera',
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'iSCSI',
|
||||
'storage_protocol': constants.ISCSI,
|
||||
'total_capacity_gb': (
|
||||
int(results.total_capacity) / units.Gi),
|
||||
'free_capacity_gb': (
|
||||
|
@ -28,6 +28,7 @@ from oslo_utils import importutils
|
||||
from oslo_utils import units
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.image import image_utils
|
||||
@ -1026,7 +1027,7 @@ class DateraApi(object):
|
||||
'volume_backend_name': self.backend_name,
|
||||
'vendor_name': 'Datera',
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'iSCSI',
|
||||
'storage_protocol': constants.ISCSI,
|
||||
'total_capacity_gb': (
|
||||
int(results.total_capacity) / units.Gi),
|
||||
'free_capacity_gb': (
|
||||
|
@ -29,6 +29,7 @@ from oslo_utils import units
|
||||
import six
|
||||
from six.moves import http_client
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -956,7 +957,7 @@ class PowerFlexDriver(driver.VolumeDriver):
|
||||
stats["volume_backend_name"] = backend_name or "powerflex"
|
||||
stats["vendor_name"] = "Dell EMC"
|
||||
stats["driver_version"] = self.VERSION
|
||||
stats["storage_protocol"] = "scaleio"
|
||||
stats["storage_protocol"] = constants.SCALEIO
|
||||
stats["reserved_percentage"] = 0
|
||||
stats["QoS_support"] = True
|
||||
stats["consistent_group_snapshot_enabled"] = True
|
||||
|
@ -17,6 +17,7 @@ import ast
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder import interface
|
||||
from cinder.volume import driver
|
||||
@ -538,7 +539,7 @@ class PowerMaxFCDriver(san.SanDriver, driver.FibreChannelDriver):
|
||||
"""Retrieve stats info from volume group."""
|
||||
LOG.debug("Updating volume stats")
|
||||
data = self.common.update_volume_stats()
|
||||
data['storage_protocol'] = 'FC'
|
||||
data['storage_protocol'] = constants.FC
|
||||
data['driver_version'] = self.VERSION
|
||||
self._stats = data
|
||||
|
||||
|
@ -22,6 +22,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import strutils
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -452,7 +453,7 @@ class PowerMaxISCSIDriver(san.SanISCSIDriver):
|
||||
"""Retrieve stats info from volume group."""
|
||||
LOG.debug("Updating volume stats")
|
||||
data = self.common.update_volume_stats()
|
||||
data['storage_protocol'] = 'iSCSI'
|
||||
data['storage_protocol'] = constants.ISCSI
|
||||
data['driver_version'] = self.VERSION
|
||||
self._stats = data
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import strutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -31,8 +32,8 @@ from cinder.volume import volume_utils
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
PROTOCOL_FC = "FC"
|
||||
PROTOCOL_ISCSI = "iSCSI"
|
||||
PROTOCOL_FC = constants.FC
|
||||
PROTOCOL_ISCSI = constants.ISCSI
|
||||
CHAP_MODE_SINGLE = "Single"
|
||||
|
||||
|
||||
|
@ -24,6 +24,7 @@ import requests
|
||||
import six
|
||||
from six.moves import http_client
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import utils
|
||||
@ -373,7 +374,7 @@ class SCApiHelper(object):
|
||||
connection.excluded_domain_ips))
|
||||
# Our primary SSN doesn't change
|
||||
connection.primaryssn = self.primaryssn
|
||||
if self.storage_protocol == 'FC':
|
||||
if self.storage_protocol == constants.FC:
|
||||
connection.protocol = 'FibreChannel'
|
||||
# Set appropriate ssn and failover state.
|
||||
if self.active_backend_id:
|
||||
|
@ -19,6 +19,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.objects import fields
|
||||
@ -112,7 +113,7 @@ class SCCommonDriver(driver.ManageableVD,
|
||||
LOG.info('Loading %(name)s: Failover state is %(state)r',
|
||||
{'name': self.backend_name,
|
||||
'state': self.failed_over})
|
||||
self.storage_protocol = 'iSCSI'
|
||||
self.storage_protocol = constants.ISCSI
|
||||
self.failback_timeout = 60
|
||||
|
||||
@staticmethod
|
||||
|
@ -17,6 +17,7 @@
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -77,7 +78,7 @@ class SCFCDriver(storagecenter_common.SCCommonDriver,
|
||||
super(SCFCDriver, self).__init__(*args, **kwargs)
|
||||
self.backend_name =\
|
||||
self.configuration.safe_get('volume_backend_name') or 'Dell-FC'
|
||||
self.storage_protocol = 'FC'
|
||||
self.storage_protocol = constants.FC
|
||||
|
||||
def validate_connector(self, connector):
|
||||
"""Fail if connector doesn't contain all the data needed by driver.
|
||||
|
@ -24,6 +24,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import importutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.objects import fields
|
||||
@ -44,8 +45,8 @@ else:
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
PROTOCOL_FC = 'FC'
|
||||
PROTOCOL_ISCSI = 'iSCSI'
|
||||
PROTOCOL_FC = constants.FC
|
||||
PROTOCOL_ISCSI = constants.ISCSI
|
||||
|
||||
|
||||
class VolumeParams(object):
|
||||
|
@ -49,6 +49,7 @@ import requests
|
||||
import six
|
||||
from six.moves import http_client
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -1101,7 +1102,7 @@ class XtremIOISCSIDriver(XtremIOVolumeDriver, driver.ISCSIDriver):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(XtremIOISCSIDriver, self).__init__(*args, **kwargs)
|
||||
self.protocol = 'iSCSI'
|
||||
self.protocol = constants.ISCSI
|
||||
|
||||
def _add_auth(self, data, login_chap, discovery_chap):
|
||||
login_passwd, discovery_passwd = None, None
|
||||
@ -1240,7 +1241,7 @@ class XtremIOFCDriver(XtremIOVolumeDriver,
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(XtremIOFCDriver, self).__init__(*args, **kwargs)
|
||||
self.protocol = 'FC'
|
||||
self.protocol = constants.FC
|
||||
self._targets = None
|
||||
|
||||
def get_targets(self):
|
||||
|
@ -22,6 +22,7 @@ FibreChannel Cinder Volume driver for Fujitsu ETERNUS DX S3 series.
|
||||
from oslo_log import log as logging
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import interface
|
||||
from cinder.volume import driver
|
||||
from cinder.volume.drivers.fujitsu.eternus_dx import eternus_dx_common
|
||||
@ -202,7 +203,7 @@ class FJDXFCDriver(driver.FibreChannelDriver):
|
||||
data, pool_name = self.common.update_volume_stats()
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
data['volume_backend_name'] = backend_name or 'FJDXFCDriver'
|
||||
data['storage_protocol'] = 'FC'
|
||||
data['storage_protocol'] = constants.FC
|
||||
self._stats = data
|
||||
|
||||
LOG.debug('get_volume_stats, '
|
||||
|
@ -20,6 +20,7 @@
|
||||
from oslo_log import log as logging
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import interface
|
||||
from cinder.volume import driver
|
||||
from cinder.volume.drivers.fujitsu.eternus_dx import eternus_dx_common
|
||||
@ -192,7 +193,7 @@ class FJDXISCSIDriver(driver.ISCSIDriver):
|
||||
data, pool_name = self.common.update_volume_stats()
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
data['volume_backend_name'] = backend_name or 'FJDXISCSIDriver'
|
||||
data['storage_protocol'] = 'iSCSI'
|
||||
data['storage_protocol'] = constants.ISCSI
|
||||
self._stats = data
|
||||
|
||||
LOG.debug('get_volume_stats, '
|
||||
|
@ -19,6 +19,7 @@ from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import units
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -159,7 +160,7 @@ class DSWAREDriver(driver.VolumeDriver):
|
||||
"thin_provisioning_support": False,
|
||||
"pools": [],
|
||||
"vendor_name": "Huawei",
|
||||
"storage_protocol": "SCSI",
|
||||
"storage_protocol": constants.SCSI,
|
||||
}
|
||||
all_pools = self.client.query_pool_info()
|
||||
|
||||
|
@ -24,6 +24,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import strutils
|
||||
from oslo_utils import units
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -97,7 +98,7 @@ class HedvigISCSIDriver(driver.ISCSIDriver, san.SanDriver):
|
||||
stats["volume_backend_name"] = "hedvig"
|
||||
stats["vendor_name"] = "Hedvig Inc"
|
||||
stats["driver_version"] = self.VERSION
|
||||
stats["storage_protocol"] = "iSCSI"
|
||||
stats["storage_protocol"] = constants.ISCSI
|
||||
stats["total_capacity_gb"] = total_capacity
|
||||
stats["free_capacity_gb"] = free_capacity
|
||||
stats["QoS_support"] = True
|
||||
|
@ -37,6 +37,7 @@ except ImportError:
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils.excutils import save_and_reraise_exception
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import interface
|
||||
from cinder.volume.drivers.hpe import hpe_3par_base as hpebasedriver
|
||||
@ -125,7 +126,7 @@ class HPE3PARFCDriver(hpebasedriver.HPE3PARDriverBase):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(HPE3PARFCDriver, self).__init__(*args, **kwargs)
|
||||
self.lookup_service = fczm_utils.create_lookup_service()
|
||||
self.protocol = 'FC'
|
||||
self.protocol = constants.FC
|
||||
|
||||
def _initialize_connection_common(self, volume, connector, common, host,
|
||||
target_wwns, init_targ_map, numPaths,
|
||||
|
@ -38,6 +38,7 @@ except ImportError:
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils.excutils import save_and_reraise_exception
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -138,7 +139,7 @@ class HPE3PARISCSIDriver(hpebasedriver.HPE3PARDriverBase):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(HPE3PARISCSIDriver, self).__init__(*args, **kwargs)
|
||||
self.protocol = 'iSCSI'
|
||||
self.protocol = constants.ISCSI
|
||||
|
||||
def _do_setup(self, common):
|
||||
client_obj = common.client
|
||||
|
@ -34,6 +34,7 @@ from oslo_utils import units
|
||||
import requests
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -586,7 +587,7 @@ class NimbleBaseVolumeDriver(san.SanDriver):
|
||||
password=self.configuration.san_password,
|
||||
ip=self.configuration.san_ip,
|
||||
verify=self.verify)
|
||||
if self._storage_protocol == "iSCSI":
|
||||
if self._storage_protocol == constants.ISCSI:
|
||||
group_info = self.APIExecutor.get_group_info()
|
||||
self._enable_group_scoped_target(group_info)
|
||||
except Exception:
|
||||
@ -670,10 +671,10 @@ class NimbleBaseVolumeDriver(san.SanDriver):
|
||||
LOG.info('Creating initiator group %(grp)s '
|
||||
'with initiator %(iname)s',
|
||||
{'grp': igrp_name, 'iname': initiator_name})
|
||||
if self._storage_protocol == "iSCSI":
|
||||
if self._storage_protocol == constants.ISCSI:
|
||||
self.APIExecutor.create_initiator_group(igrp_name)
|
||||
self.APIExecutor.add_initiator_to_igroup(igrp_name, initiator_name)
|
||||
elif self._storage_protocol == "FC":
|
||||
elif self._storage_protocol == constants.FC:
|
||||
self.APIExecutor.create_initiator_group_fc(igrp_name)
|
||||
for wwpn in wwpns:
|
||||
self.APIExecutor.add_initiator_to_igroup_fc(igrp_name, wwpn)
|
||||
@ -952,7 +953,7 @@ class NimbleISCSIDriver(NimbleBaseVolumeDriver, san.SanISCSIDriver):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(NimbleISCSIDriver, self).__init__(*args, **kwargs)
|
||||
self._storage_protocol = "iSCSI"
|
||||
self._storage_protocol = constants.ISCSI
|
||||
self._group_target_name = None
|
||||
|
||||
def _set_gst_for_group(self):
|
||||
@ -1126,7 +1127,7 @@ class NimbleFCDriver(NimbleBaseVolumeDriver, driver.FibreChannelDriver):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(NimbleFCDriver, self).__init__(*args, **kwargs)
|
||||
self._storage_protocol = "FC"
|
||||
self._storage_protocol = constants.FC
|
||||
self._lookup_service = fczm_utils.create_lookup_service()
|
||||
|
||||
def _get_provider_location(self, volume_name):
|
||||
@ -1545,7 +1546,7 @@ class NimbleRestAPIExecutor(object):
|
||||
'perfpolicy_id': perf_policy_id,
|
||||
'encryption_cipher': cipher}}
|
||||
|
||||
if protocol == "iSCSI":
|
||||
if protocol == constants.ISCSI:
|
||||
data['data']['multi_initiator'] = multi_initiator
|
||||
|
||||
if dedupe.lower() == 'true':
|
||||
@ -2012,7 +2013,7 @@ class NimbleRestAPIExecutor(object):
|
||||
"encryption_cipher": cipher
|
||||
}
|
||||
}
|
||||
if protocol == "iSCSI":
|
||||
if protocol == constants.ISCSI:
|
||||
data['data']['multi_initiator'] = multi_initiator
|
||||
|
||||
folder_id = None
|
||||
|
@ -18,6 +18,7 @@ import json
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import strutils
|
||||
|
||||
from cinder.common import constants as cinder_constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -72,7 +73,7 @@ class HuaweiISCSIDriver(common.HuaweiBaseDriver, driver.ISCSIDriver):
|
||||
def get_volume_stats(self, refresh=False):
|
||||
"""Get volume status."""
|
||||
data = self._get_volume_stats(refresh=False)
|
||||
data['storage_protocol'] = 'iSCSI'
|
||||
data['storage_protocol'] = cinder_constants.ISCSI
|
||||
data['driver_version'] = self.VERSION
|
||||
return data
|
||||
|
||||
@ -264,7 +265,7 @@ class HuaweiFCDriver(common.HuaweiBaseDriver, driver.FibreChannelDriver):
|
||||
def get_volume_stats(self, refresh=False):
|
||||
"""Get volume status."""
|
||||
data = self._get_volume_stats(refresh=False)
|
||||
data['storage_protocol'] = 'FC'
|
||||
data['storage_protocol'] = cinder_constants.FC
|
||||
data['driver_version'] = self.VERSION
|
||||
return data
|
||||
|
||||
|
@ -28,6 +28,7 @@ from oslo_utils import units
|
||||
import paramiko
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -856,7 +857,7 @@ class GPFSDriver(driver.CloneableImageVD,
|
||||
data["volume_backend_name"] = backend_name or 'GPFS'
|
||||
data["vendor_name"] = 'IBM'
|
||||
data["driver_version"] = self.VERSION
|
||||
data["storage_protocol"] = 'file'
|
||||
data["storage_protocol"] = constants.FILE
|
||||
free, capacity = self._get_available_capacity(self.configuration.
|
||||
gpfs_mount_point_base)
|
||||
data['total_capacity_gb'] = math.ceil(capacity / units.Gi)
|
||||
@ -1561,7 +1562,7 @@ class GPFSNFSDriver(GPFSDriver, nfs.NfsDriver, san.SanDriver):
|
||||
data['volume_backend_name'] = backend_name or 'GPFSNFS'
|
||||
data['vendor_name'] = 'IBM'
|
||||
data['driver_version'] = self.get_version()
|
||||
data['storage_protocol'] = 'file'
|
||||
data['storage_protocol'] = constants.FILE
|
||||
|
||||
self._ensure_shares_mounted()
|
||||
|
||||
|
@ -39,6 +39,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import strutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -104,7 +105,7 @@ class StorwizeSVCISCSIDriver(storwize_common.StorwizeSVCCommonDriver):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(StorwizeSVCISCSIDriver, self).__init__(*args, **kwargs)
|
||||
self.protocol = 'iSCSI'
|
||||
self.protocol = constants.ISCSI
|
||||
self.configuration.append_config_values(
|
||||
storwize_svc_iscsi_opts)
|
||||
|
||||
|
@ -24,6 +24,7 @@ from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import units
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -164,12 +165,12 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
self._backend_name = backend_name or self.__class__.__name__
|
||||
self._volume_stats = None
|
||||
if self.configuration.infinidat_storage_protocol.lower() == 'iscsi':
|
||||
self._protocol = 'iSCSI'
|
||||
self._protocol = constants.ISCSI
|
||||
if len(self.configuration.infinidat_iscsi_netspaces) == 0:
|
||||
msg = _('No iSCSI network spaces configured')
|
||||
raise exception.VolumeDriverException(message=msg)
|
||||
else:
|
||||
self._protocol = 'FC'
|
||||
self._protocol = constants.FC
|
||||
if (self.configuration.infinidat_use_compression and
|
||||
not self._system.compat.has_compression()):
|
||||
# InfiniBox systems support compression only from v3.0 and up
|
||||
@ -182,7 +183,8 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
LOG.debug('setup complete')
|
||||
|
||||
def validate_connector(self, connector):
|
||||
required = 'initiator' if self._protocol == 'iSCSI' else 'wwpns'
|
||||
required = ('initiator' if self._protocol == constants.ISCSI
|
||||
else 'wwpns')
|
||||
if required not in connector:
|
||||
LOG.error('The volume driver requires %(data)s '
|
||||
'in the connector.', {'data': required})
|
||||
@ -419,7 +421,7 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
if connector is None:
|
||||
# If no connector was provided it is a force-detach - remove all
|
||||
# host connections for the volume
|
||||
if self._protocol == 'FC':
|
||||
if self._protocol == constants.FC:
|
||||
port_cls = wwn.WWN
|
||||
else:
|
||||
port_cls = iqn.IQN
|
||||
@ -429,7 +431,7 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
host_ports = [port for port in host_ports
|
||||
if isinstance(port, port_cls)]
|
||||
ports.extend(host_ports)
|
||||
elif self._protocol == 'FC':
|
||||
elif self._protocol == constants.FC:
|
||||
ports = [wwn.WWN(wwpn) for wwpn in connector['wwpns']]
|
||||
else:
|
||||
ports = [iqn.IQN(connector['initiator'])]
|
||||
@ -439,7 +441,7 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
@coordination.synchronized('infinidat-{self.management_address}-lock')
|
||||
def initialize_connection(self, volume, connector):
|
||||
"""Map an InfiniBox volume to the host"""
|
||||
if self._protocol == 'FC':
|
||||
if self._protocol == constants.FC:
|
||||
return self._initialize_connection_fc(volume, connector)
|
||||
else:
|
||||
return self._initialize_connection_iscsi(volume, connector)
|
||||
@ -449,7 +451,7 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
def terminate_connection(self, volume, connector, **kwargs):
|
||||
"""Unmap an InfiniBox volume from the host"""
|
||||
infinidat_volume = self._get_infinidat_volume(volume)
|
||||
if self._protocol == 'FC':
|
||||
if self._protocol == constants.FC:
|
||||
volume_type = 'fibre_channel'
|
||||
else:
|
||||
volume_type = 'iscsi'
|
||||
@ -469,7 +471,7 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
# check if the host now doesn't have mappings
|
||||
if host is not None and len(host.get_luns()) == 0:
|
||||
host.safe_delete()
|
||||
if self._protocol == 'FC' and connector is not None:
|
||||
if self._protocol == constants.FC and connector is not None:
|
||||
# Create initiator-target mapping to delete host entry
|
||||
# this is only relevant for regular (specific host) detach
|
||||
target_wwpns = list(self._get_online_fc_ports())
|
||||
@ -480,7 +482,7 @@ class InfiniboxVolumeDriver(san.SanISCSIDriver):
|
||||
initiator_target_map=target_map)
|
||||
conn_info = dict(driver_volume_type=volume_type,
|
||||
data=result_data)
|
||||
if self._protocol == 'FC':
|
||||
if self._protocol == constants.FC:
|
||||
fczm_utils.remove_fc_zone(conn_info)
|
||||
return conn_info
|
||||
|
||||
|
@ -29,6 +29,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import units
|
||||
import requests
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -176,7 +177,6 @@ class AS13000Driver(san.SanISCSIDriver):
|
||||
|
||||
VENDOR = 'INSPUR'
|
||||
VERSION = '1.0.0'
|
||||
PROTOCOL = 'iSCSI'
|
||||
|
||||
# ThirdPartySystems wiki page
|
||||
CI_WIKI_NAME = 'Inspur_CI'
|
||||
@ -474,7 +474,7 @@ class AS13000Driver(san.SanISCSIDriver):
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
data['vendor_name'] = self.VENDOR
|
||||
data['driver_version'] = self.VERSION
|
||||
data['storage_protocol'] = self.PROTOCOL
|
||||
data['storage_protocol'] = constants.ISCSI
|
||||
data['volume_backend_name'] = backend_name
|
||||
data['pools'] = self._get_pools_stats()
|
||||
|
||||
|
@ -32,6 +32,7 @@ from oslo_utils import units
|
||||
import paramiko
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -212,11 +213,11 @@ class InStorageMCSCommonDriver(driver.VolumeDriver, san.SanDriver):
|
||||
for k, node in self._state['storage_nodes'].items():
|
||||
if ((len(node['ipv4']) or len(node['ipv6'])) and
|
||||
len(node['iscsi_name'])):
|
||||
node['enabled_protocols'].append('iSCSI')
|
||||
self._state['enabled_protocols'].add('iSCSI')
|
||||
node['enabled_protocols'].append(constants.ISCSI)
|
||||
self._state['enabled_protocols'].add(constants.ISCSI)
|
||||
if len(node['WWPN']):
|
||||
node['enabled_protocols'].append('FC')
|
||||
self._state['enabled_protocols'].add('FC')
|
||||
node['enabled_protocols'].append(constants.FC)
|
||||
self._state['enabled_protocols'].add(constants.FC)
|
||||
if not len(node['enabled_protocols']):
|
||||
to_delete.append(k)
|
||||
for delkey in to_delete:
|
||||
|
@ -15,6 +15,7 @@
|
||||
"""Volume driver for Kaminario K2 all-flash arrays."""
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder.i18n import _
|
||||
from cinder.objects import fields
|
||||
@ -45,7 +46,7 @@ class KaminarioFCDriver(common.KaminarioCinderDriver):
|
||||
@volume_utils.trace
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(KaminarioFCDriver, self).__init__(*args, **kwargs)
|
||||
self._protocol = 'FC'
|
||||
self._protocol = constants.FC
|
||||
self.lookup_service = fczm_utils.create_lookup_service()
|
||||
|
||||
@volume_utils.trace
|
||||
|
@ -15,6 +15,7 @@
|
||||
"""Volume driver for Kaminario K2 all-flash arrays."""
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -50,7 +51,7 @@ class KaminarioISCSIDriver(common.KaminarioCinderDriver):
|
||||
@volume_utils.trace
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(KaminarioISCSIDriver, self).__init__(*args, **kwargs)
|
||||
self._protocol = 'iSCSI'
|
||||
self._protocol = constants.ISCSI
|
||||
|
||||
@volume_utils.trace
|
||||
@coordination.synchronized('{self.k2_lock_name}')
|
||||
|
@ -19,6 +19,7 @@ from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils.secretutils import md5
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -414,7 +415,7 @@ class KumoScaleBaseVolumeDriver(driver.BaseVD):
|
||||
volume_backend_name=self._backend_name,
|
||||
vendor_name='KIOXIA',
|
||||
driver_version=self.VERSION,
|
||||
storage_protocol='NVMeOF',
|
||||
storage_protocol=constants.NVMEOF_VARIANT_1,
|
||||
)
|
||||
data['total_capacity_gb'] = 'unknown'
|
||||
data['free_capacity_gb'] = 'unknown'
|
||||
|
@ -28,6 +28,7 @@ from oslo_utils import units
|
||||
import requests
|
||||
import urllib3
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -980,7 +981,6 @@ class LightOSVolumeDriver(driver.VolumeDriver):
|
||||
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
res_percentage = self.configuration.safe_get('reserved_percentage')
|
||||
storage_protocol = 'lightos'
|
||||
# as a tenant we dont have access to cluster stats
|
||||
# in the future we might expose this per project via get_project API
|
||||
# currently we remove this stats call.
|
||||
@ -989,7 +989,7 @@ class LightOSVolumeDriver(driver.VolumeDriver):
|
||||
data = {'vendor_name': 'LightOS Storage',
|
||||
'volume_backend_name': backend_name or self.__class__.__name__,
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': storage_protocol,
|
||||
'storage_protocol': constants.LIGHTOS,
|
||||
'reserved_percentage': res_percentage,
|
||||
'QoS_support': False,
|
||||
'online_extend_support': True,
|
||||
|
@ -27,6 +27,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import importutils
|
||||
from oslo_utils import units
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.image import image_utils
|
||||
@ -1027,7 +1028,7 @@ class LinstorIscsiDriver(LinstorBaseDriver):
|
||||
|
||||
def get_volume_stats(self, refresh=False):
|
||||
data = self._get_volume_stats()
|
||||
data["storage_protocol"] = 'iSCSI'
|
||||
data["storage_protocol"] = constants.ISCSI
|
||||
data["pools"][0]["location_info"] = (
|
||||
'LinstorIscsiDriver:' + data["pools"][0]["location_info"])
|
||||
|
||||
@ -1097,7 +1098,7 @@ class LinstorDrbdDriver(LinstorBaseDriver):
|
||||
|
||||
def get_volume_stats(self, refresh=False):
|
||||
data = self._get_volume_stats()
|
||||
data["storage_protocol"] = 'DRBD'
|
||||
data["storage_protocol"] = constants.DRBD
|
||||
data["pools"][0]["location_info"] = 'LinstorDrbdDriver:{}'.format(
|
||||
data["pools"][0]["location_info"])
|
||||
|
||||
|
@ -27,6 +27,7 @@ from oslo_utils import excutils
|
||||
from oslo_utils import strutils
|
||||
from oslo_utils import timeutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder.coordination import synchronized
|
||||
from cinder import exception
|
||||
@ -1023,7 +1024,7 @@ class MacroSANISCSIDriver(MacroSANBaseDriver, driver.ISCSIDriver):
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""Initialize the driver."""
|
||||
super(MacroSANISCSIDriver, self).__init__(*args, **kwargs)
|
||||
self.storage_protocol = 'iSCSI'
|
||||
self.storage_protocol = constants.ISCSI
|
||||
|
||||
def _do_setup(self):
|
||||
ports = self.client.get_iscsi_ports()
|
||||
@ -1224,7 +1225,7 @@ class MacroSANFCDriver(MacroSANBaseDriver, driver.FibreChannelDriver):
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""Initialize the driver."""
|
||||
super(MacroSANFCDriver, self).__init__(*args, **kwargs)
|
||||
self.storage_protocol = 'FC'
|
||||
self.storage_protocol = constants.FC
|
||||
self.fcsan_lookup_service = None
|
||||
self.use_sp_port_nr = self.configuration.macrosan_fc_use_sp_port_nr
|
||||
self.keep_mapped_ports = \
|
||||
|
@ -21,6 +21,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import units
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -1467,7 +1468,7 @@ class MStorageDriver(volume_common.MStorageVolumeCommon):
|
||||
"""
|
||||
if refresh:
|
||||
self._stats = self._update_volume_status()
|
||||
self._stats['storage_protocol'] = 'iSCSI'
|
||||
self._stats['storage_protocol'] = constants.ISCSI
|
||||
LOG.debug('data=%(data)s, config_group=%(group)s',
|
||||
{'data': self._stats, 'group': self._config_group})
|
||||
|
||||
@ -1481,7 +1482,7 @@ class MStorageDriver(volume_common.MStorageVolumeCommon):
|
||||
|
||||
if refresh:
|
||||
self._stats = self._update_volume_status()
|
||||
self._stats['storage_protocol'] = 'FC'
|
||||
self._stats['storage_protocol'] = constants.FC
|
||||
LOG.debug('data=%(data)s, config_group=%(group)s',
|
||||
{'data': self._stats, 'group': self._config_group})
|
||||
|
||||
|
@ -30,6 +30,7 @@ from oslo_utils import excutils
|
||||
from oslo_utils import units
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.image import image_utils
|
||||
@ -327,7 +328,7 @@ class NetAppCmodeNfsDriver(nfs_base.NetAppNfsDriver,
|
||||
data['volume_backend_name'] = backend_name or self.driver_name
|
||||
data['vendor_name'] = 'NetApp'
|
||||
data['driver_version'] = self.VERSION
|
||||
data['storage_protocol'] = 'nfs'
|
||||
data['storage_protocol'] = constants.NFS_VARIANT
|
||||
data['pools'] = self._get_pool_stats(
|
||||
filter_function=self.get_filter_function(),
|
||||
goodness_function=self.get_goodness_function())
|
||||
|
@ -16,6 +16,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -664,7 +665,7 @@ class NexentaISCSIDriver(driver.ISCSIDriver):
|
||||
'compression': self.volume_compression,
|
||||
'description': self.volume_description,
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'iSCSI',
|
||||
'storage_protocol': constants.ISCSI,
|
||||
'total_capacity_gb': total_amount,
|
||||
'free_capacity_gb': free_amount,
|
||||
'reserved_percentage': self.configuration.reserved_percentage,
|
||||
|
@ -23,6 +23,7 @@ from oslo_utils.secretutils import md5
|
||||
from oslo_utils import units
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import db
|
||||
from cinder import exception
|
||||
@ -823,7 +824,7 @@ class NexentaNfsDriver(nfs.NfsDriver): # pylint: disable=R0921
|
||||
'nms_url': nms_url,
|
||||
'ns_shares': self.shares_with_capacities,
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'NFS',
|
||||
'storage_protocol': constants.NFS,
|
||||
'total_capacity_gb': total_space,
|
||||
'free_capacity_gb': free_space,
|
||||
'reserved_percentage': self.configuration.reserved_percentage,
|
||||
|
@ -22,6 +22,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import units
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import coordination
|
||||
from cinder.i18n import _
|
||||
@ -77,7 +78,7 @@ class NexentaISCSIDriver(driver.ISCSIDriver):
|
||||
|
||||
vendor_name = 'Nexenta'
|
||||
product_name = 'NexentaStor5'
|
||||
storage_protocol = 'iSCSI'
|
||||
storage_protocol = constants.ISCSI
|
||||
driver_volume_type = 'iscsi'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
@ -23,6 +23,7 @@ from oslo_utils.secretutils import md5
|
||||
from oslo_utils import units
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import coordination
|
||||
from cinder.i18n import _
|
||||
@ -88,7 +89,7 @@ class NexentaNfsDriver(nfs.NfsDriver):
|
||||
|
||||
vendor_name = 'Nexenta'
|
||||
product_name = 'NexentaStor5'
|
||||
storage_protocol = 'NFS'
|
||||
storage_protocol = constants.NFS
|
||||
driver_volume_type = 'nfs'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
@ -20,6 +20,7 @@ import string
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import units as o_units
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -743,7 +744,7 @@ class JovianISCSIDriver(driver.ISCSIDriver):
|
||||
self._stats = {
|
||||
'vendor_name': 'Open-E',
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'iSCSI',
|
||||
'storage_protocol': constants.ISCSI,
|
||||
'total_capacity_gb': total_capacity,
|
||||
'free_capacity_gb': free_capacity,
|
||||
'reserved_percentage': int(reserved_percentage),
|
||||
|
@ -17,6 +17,7 @@ import errno
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -389,7 +390,7 @@ class DPLFCDriver(dplcommon.DPLCOMMONDriver,
|
||||
if refresh:
|
||||
data = super(DPLFCDriver, self).get_volume_stats(refresh)
|
||||
if data:
|
||||
data['storage_protocol'] = 'FC'
|
||||
data['storage_protocol'] = constants.FC
|
||||
backend_name = \
|
||||
self.configuration.safe_get('volume_backend_name')
|
||||
data['volume_backend_name'] = (backend_name or 'DPLFCDriver')
|
||||
|
@ -17,6 +17,7 @@ import errno
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -144,7 +145,7 @@ class DPLISCSIDriver(dplcommon.DPLCOMMONDriver,
|
||||
try:
|
||||
data = super(DPLISCSIDriver, self).get_volume_stats(refresh)
|
||||
if data:
|
||||
data['storage_protocol'] = 'iSCSI'
|
||||
data['storage_protocol'] = constants.ISCSI
|
||||
backend_name = \
|
||||
self.configuration.safe_get('volume_backend_name')
|
||||
data['volume_backend_name'] = \
|
||||
|
@ -34,6 +34,7 @@ import requests
|
||||
import six
|
||||
from six.moves import http_client
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import objects
|
||||
@ -1455,7 +1456,7 @@ class DPLCOMMONDriver(driver.CloneableImageVD,
|
||||
if ret == 0:
|
||||
data['vendor_name'] = output['metadata']['vendor']
|
||||
data['driver_version'] = output['metadata']['version']
|
||||
data['storage_protocol'] = 'iSCSI'
|
||||
data['storage_protocol'] = constants.ISCSI
|
||||
data['location_info'] = location_info
|
||||
data['consistencygroup_support'] = True
|
||||
data['consistent_group_snapshot_enabled'] = True
|
||||
|
@ -35,6 +35,7 @@ try:
|
||||
except ImportError:
|
||||
purestorage = None
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -2526,7 +2527,7 @@ class PureISCSIDriver(PureBaseVolumeDriver, san.SanISCSIDriver):
|
||||
def __init__(self, *args, **kwargs):
|
||||
execute = kwargs.pop("execute", utils.execute)
|
||||
super(PureISCSIDriver, self).__init__(execute=execute, *args, **kwargs)
|
||||
self._storage_protocol = "iSCSI"
|
||||
self._storage_protocol = constants.ISCSI
|
||||
|
||||
def _get_host(self, array, connector, remote=False):
|
||||
"""Return dict describing existing Purity host object or None."""
|
||||
@ -2748,7 +2749,7 @@ class PureFCDriver(PureBaseVolumeDriver, driver.FibreChannelDriver):
|
||||
def __init__(self, *args, **kwargs):
|
||||
execute = kwargs.pop("execute", utils.execute)
|
||||
super(PureFCDriver, self).__init__(execute=execute, *args, **kwargs)
|
||||
self._storage_protocol = "FC"
|
||||
self._storage_protocol = constants.FC
|
||||
self._lookup_service = fczm_utils.create_lookup_service()
|
||||
|
||||
def _get_host(self, array, connector, remote=False):
|
||||
|
@ -35,6 +35,7 @@ import requests
|
||||
import six
|
||||
from six.moves import urllib
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -51,7 +52,7 @@ qnap_opts = [
|
||||
cfg.StrOpt('qnap_poolname',
|
||||
help='The pool name in the QNAP Storage'),
|
||||
cfg.StrOpt('qnap_storage_protocol',
|
||||
default='iscsi',
|
||||
default=constants.ISCSI,
|
||||
help='Communication protocol to access QNAP storage')
|
||||
]
|
||||
|
||||
|
@ -40,6 +40,7 @@ except ImportError:
|
||||
rados = None
|
||||
rbd = None
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -243,7 +244,7 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD,
|
||||
RBD_FEATURE_OBJECT_MAP = 8
|
||||
RBD_FEATURE_FAST_DIFF = 16
|
||||
RBD_FEATURE_JOURNALING = 64
|
||||
STORAGE_PROTOCOL = 'ceph'
|
||||
STORAGE_PROTOCOL = constants.CEPH
|
||||
|
||||
def __init__(self,
|
||||
active_backend_id: str = None,
|
||||
@ -2065,7 +2066,7 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD,
|
||||
'migration.')
|
||||
return refuse_to_migrate
|
||||
|
||||
if (host['capabilities']['storage_protocol'] != 'ceph'):
|
||||
if (host['capabilities']['storage_protocol'] != self.STORAGE_PROTOCOL):
|
||||
LOG.debug('Source and destination drivers need to be RBD '
|
||||
'to use backend assisted migration. Falling back to '
|
||||
'generic migration.')
|
||||
|
@ -26,6 +26,7 @@ except ImportError:
|
||||
RSDLib = None
|
||||
sushy_exceptions = None
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -594,7 +595,7 @@ class RSDDriver(driver.VolumeDriver):
|
||||
self._stats['volume_backend_name'] = backend_name
|
||||
self._stats['vendor_name'] = 'Intel'
|
||||
self._stats['driver_version'] = self.VERSION
|
||||
self._stats['storage_protocol'] = 'nvmeof'
|
||||
self._stats['storage_protocol'] = constants.NVMEOF_VARIANT_2
|
||||
# SinglePool
|
||||
self._stats['pools'] = [spool]
|
||||
|
||||
|
@ -18,6 +18,7 @@ from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import units
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -334,7 +335,7 @@ class SdsISCSIDriver(SdsBaseDriver, driver.ISCSIDriver):
|
||||
data = SdsBaseDriver.get_volume_stats(self, refresh)
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
data['volume_backend_name'] = backend_name or self.__class__.__name__
|
||||
data['storage_protocol'] = 'iSCSI'
|
||||
data['storage_protocol'] = constants.ISCSI
|
||||
data['driver_version'] = self.VERSION
|
||||
data['vendor_name'] = 'SandStone USP'
|
||||
return data
|
||||
|
@ -31,6 +31,7 @@ from oslo_utils import units
|
||||
import requests
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -2163,7 +2164,7 @@ class SolidFireDriver(san.SanISCSIDriver):
|
||||
data["volume_backend_name"] = backend_name or self.__class__.__name__
|
||||
data["vendor_name"] = 'SolidFire Inc'
|
||||
data["driver_version"] = self.VERSION
|
||||
data["storage_protocol"] = 'iSCSI'
|
||||
data["storage_protocol"] = constants.ISCSI
|
||||
data['consistencygroup_support'] = True
|
||||
data['consistent_group_snapshot_enabled'] = True
|
||||
data['replication_enabled'] = self.replication_enabled
|
||||
|
@ -19,6 +19,7 @@ from oslo_utils import importutils
|
||||
from oslo_utils import units
|
||||
import requests
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import context
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -91,7 +92,7 @@ class SPDKDriver(driver.VolumeDriver):
|
||||
status = {'volume_backend_name': 'SPDK',
|
||||
'vendor_name': 'Open Source',
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'NVMe-oF'}
|
||||
'storage_protocol': constants.NVMEOF}
|
||||
pools_status = []
|
||||
self.lvs = []
|
||||
|
||||
@ -109,7 +110,7 @@ class SPDKDriver(driver.VolumeDriver):
|
||||
pool["volume_backend_name"] = 'SPDK'
|
||||
pool["vendor_name"] = 'Open Source'
|
||||
pool["driver_version"] = self.VERSION
|
||||
pool["storage_protocol"] = 'NVMe-oF'
|
||||
pool["storage_protocol"] = constants.NVMEOF
|
||||
pool["total_capacity_gb"] = total_size
|
||||
pool["free_capacity_gb"] = free_size
|
||||
pool["pool_name"] = lvs['name']
|
||||
|
@ -23,6 +23,7 @@ from oslo_utils import importutils
|
||||
from oslo_utils import units
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -305,7 +306,7 @@ class StorPoolDriver(driver.VolumeDriver):
|
||||
'volume_backend_name') or 'storpool',
|
||||
'vendor_name': 'StorPool',
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'storpool',
|
||||
'storage_protocol': constants.STORPOOL,
|
||||
|
||||
'sparse_copy_volume': True,
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from cinder.common import constants
|
||||
import cinder.volume.driver
|
||||
import cinder.volume.drivers.san.san as san
|
||||
import cinder.volume.drivers.stx.common as common
|
||||
@ -146,7 +147,7 @@ class STXFCDriver(cinder.volume.driver.FibreChannelDriver):
|
||||
|
||||
def get_volume_stats(self, refresh=False):
|
||||
stats = self.common.get_volume_stats(refresh)
|
||||
stats['storage_protocol'] = 'FC'
|
||||
stats['storage_protocol'] = constants.FC
|
||||
stats['driver_version'] = self.VERSION
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
stats['volume_backend_name'] = (backend_name or
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
import cinder.volume.driver
|
||||
@ -161,7 +162,7 @@ class STXISCSIDriver(cinder.volume.driver.ISCSIDriver):
|
||||
|
||||
def get_volume_stats(self, refresh=False):
|
||||
stats = self.common.get_volume_stats(refresh)
|
||||
stats['storage_protocol'] = 'iSCSI'
|
||||
stats['storage_protocol'] = constants.ISCSI
|
||||
stats['driver_version'] = self.VERSION
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
stats['volume_backend_name'] = (backend_name or
|
||||
|
@ -30,6 +30,7 @@ from oslo_utils import excutils
|
||||
from oslo_utils import units
|
||||
import paramiko
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import coordination
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
@ -355,7 +356,7 @@ class Acs5000CommonDriver(san.SanDriver,
|
||||
self._state.update(self._cmd.get_system())
|
||||
|
||||
self._state['controller'] = self._cmd.ls_controller()
|
||||
if self.protocol == 'FC':
|
||||
if self.protocol == constants.FC:
|
||||
ports = self._cmd.ls_fc()
|
||||
else:
|
||||
ports = self._cmd.ls_iscsi()
|
||||
|
@ -19,6 +19,7 @@ acs5000 FC driver
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -42,7 +43,7 @@ class Acs5000FCDriver(acs5000_common.Acs5000CommonDriver):
|
||||
|
||||
VENDOR = 'TOYOU'
|
||||
VERSION = '1.0.0'
|
||||
PROTOCOL = 'FC'
|
||||
PROTOCOL = constants.FC
|
||||
|
||||
# ThirdPartySystems wiki page
|
||||
CI_WIKI_NAME = 'TOYOU_ACS5000_CI'
|
||||
|
@ -19,6 +19,7 @@ acs5000 iSCSI driver
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -41,7 +42,7 @@ class Acs5000ISCSIDriver(acs5000_common.Acs5000CommonDriver):
|
||||
|
||||
VENDOR = 'TOYOU'
|
||||
VERSION = '1.0.0'
|
||||
PROTOCOL = 'iSCSI'
|
||||
PROTOCOL = constants.ISCSI
|
||||
|
||||
# ThirdPartySystems wiki page
|
||||
CI_WIKI_NAME = 'TOYOU_ACS5000_CI'
|
||||
|
@ -31,6 +31,7 @@ import requests
|
||||
import requests.auth
|
||||
from six.moves import http_client
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -85,7 +86,6 @@ class ACCESSIscsiDriver(driver.ISCSIDriver):
|
||||
VERSION = "1.0"
|
||||
# ThirdPartySytems wiki page
|
||||
CI_WIKI_NAME = "Veritas_Access_CI"
|
||||
DRIVER_VOLUME_TYPE = 'iSCSI'
|
||||
LUN_FOUND_INTERVAL = 30 # seconds
|
||||
|
||||
# TODO(jsbryant) Remove driver in the 'U' release if CI is not fixed.
|
||||
@ -892,7 +892,7 @@ class ACCESSIscsiDriver(driver.ISCSIDriver):
|
||||
self._stats["vendor_name"] = 'Veritas'
|
||||
self._stats["reserved_percentage"] = res_percentage or 0
|
||||
self._stats["driver_version"] = self.VERSION
|
||||
self._stats["storage_protocol"] = self.DRIVER_VOLUME_TYPE
|
||||
self._stats["storage_protocol"] = constants.ISCSI
|
||||
self._stats['total_capacity_gb'] = total_capacity
|
||||
self._stats['free_capacity_gb'] = free_capacity
|
||||
self._stats['thin_provisioning_support'] = True
|
||||
|
@ -18,6 +18,7 @@ import os
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import excutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -52,7 +53,7 @@ class VeritasCNFSDriver(nfs.NfsDriver):
|
||||
VERSION = "1.0.3"
|
||||
# ThirdPartySytems wiki page
|
||||
CI_WIKI_NAME = "Veritas_Access_CI"
|
||||
DRIVER_VOLUME_TYPE = 'nfs'
|
||||
DRIVER_VOLUME_TYPE = constants.NFS_VARIANT
|
||||
|
||||
# TODO(jsbryant) Remove driver in the 'V' release if CI is not fixed.
|
||||
SUPPORTED = False
|
||||
|
@ -27,6 +27,7 @@ from oslo_vmware import image_transfer
|
||||
from oslo_vmware.objects import datastore
|
||||
from oslo_vmware import vim_util
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -55,7 +56,7 @@ class VMwareVStorageObjectDriver(vmdk.VMwareVcVmdkDriver):
|
||||
# minimum supported vCenter version
|
||||
MIN_SUPPORTED_VC_VERSION = '6.5'
|
||||
|
||||
STORAGE_TYPE = 'vstorageobject'
|
||||
STORAGE_TYPE = constants.VSTORAGE
|
||||
|
||||
def do_setup(self, context):
|
||||
"""Any initialization the volume driver needs to do while starting.
|
||||
|
@ -37,6 +37,7 @@ from oslo_vmware import image_transfer
|
||||
from oslo_vmware import pbm
|
||||
from oslo_vmware import vim_util
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.image import image_utils
|
||||
@ -369,7 +370,7 @@ class VMwareVcVmdkDriver(driver.VolumeDriver):
|
||||
data = {'volume_backend_name': backend_name,
|
||||
'vendor_name': 'VMware',
|
||||
'driver_version': self.VERSION,
|
||||
'storage_protocol': 'vmdk',
|
||||
'storage_protocol': constants.VMDK,
|
||||
'reserved_percentage': self.configuration.reserved_percentage,
|
||||
'shared_targets': False}
|
||||
ds_summaries = self._get_datastore_summaries()
|
||||
|
@ -29,6 +29,7 @@ from oslo_utils import fileutils
|
||||
from oslo_utils import units
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.image import image_utils
|
||||
from cinder import interface
|
||||
@ -334,7 +335,7 @@ class WindowsISCSIDriver(driver.ISCSIDriver):
|
||||
data["volume_backend_name"] = backend_name or self.__class__.__name__
|
||||
data["vendor_name"] = 'Microsoft'
|
||||
data["driver_version"] = self.VERSION
|
||||
data["storage_protocol"] = 'iSCSI'
|
||||
data["storage_protocol"] = constants.ISCSI
|
||||
data['total_capacity_gb'] = total_gb
|
||||
data['free_capacity_gb'] = free_gb
|
||||
data['reserved_percentage'] = self.configuration.reserved_percentage
|
||||
|
@ -22,6 +22,7 @@ from oslo_log import log as logging
|
||||
from oslo_utils import strutils
|
||||
import six
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception as cinder_exception
|
||||
from cinder.i18n import _
|
||||
from cinder import interface
|
||||
@ -709,9 +710,9 @@ class ZadaraVPSAISCSIDriver(driver.ISCSIDriver):
|
||||
"""Retrieve stats info from volume group."""
|
||||
LOG.debug("Updating volume stats")
|
||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||
storage_protocol = ('iSER' if
|
||||
storage_protocol = (constants.ISER if
|
||||
(self.configuration.safe_get('zadara_use_iser'))
|
||||
else 'iSCSI')
|
||||
else constants.ISCSI)
|
||||
pool_name = self.configuration.zadara_vpsa_poolname
|
||||
(total, free, provisioned) = self.vpsa._get_pool_capacity(pool_name)
|
||||
data = dict(
|
||||
|
@ -844,9 +844,10 @@ class VolumeManager(manager.CleanableManager,
|
||||
|
||||
# Shared targets is only relevant for iSCSI connections.
|
||||
# We default to True to be on the safe side.
|
||||
capabilities = self.driver.capabilities
|
||||
volume.shared_targets = (
|
||||
self.driver.capabilities.get('storage_protocol') == 'iSCSI' and
|
||||
self.driver.capabilities.get('shared_targets', True))
|
||||
capabilities.get('storage_protocol') in constants.ISCSI_VARIANTS
|
||||
and capabilities.get('shared_targets', True))
|
||||
# TODO(geguileo): service_uuid won't be enough on Active/Active
|
||||
# deployments. There can be 2 services handling volumes from the same
|
||||
# backend.
|
||||
@ -2761,8 +2762,8 @@ class VolumeManager(manager.CleanableManager,
|
||||
|
||||
# Append cacheable flag for iSCSI/FC/NVMe-oF and only when
|
||||
# cacheable is not set in driver level
|
||||
if volume_stats.get('storage_protocol') in [
|
||||
'iSCSI', 'FC', 'NVMe-oF']:
|
||||
if (volume_stats.get('storage_protocol')
|
||||
in constants.CACHEABLE_PROTOCOLS):
|
||||
if volume_stats.get('pools'):
|
||||
for pool in volume_stats.get('pools'):
|
||||
if pool.get('cacheable') is None:
|
||||
|
@ -15,6 +15,7 @@ import abc
|
||||
from oslo_concurrency import processutils
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder import utils
|
||||
@ -37,7 +38,7 @@ class ISCSITarget(driver.Target):
|
||||
super(ISCSITarget, self).__init__(*args, **kwargs)
|
||||
self.iscsi_target_prefix = self.configuration.safe_get('target_prefix')
|
||||
self.iscsi_protocol = self.configuration.safe_get('target_protocol')
|
||||
self.protocol = 'iSCSI'
|
||||
self.protocol = constants.ISCSI
|
||||
self.volumes_dir = self.configuration.safe_get('volumes_dir')
|
||||
|
||||
def _get_iscsi_properties(self, volume, multipath=False):
|
||||
|
@ -14,6 +14,7 @@ import abc
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
||||
from cinder.common import constants
|
||||
from cinder import exception
|
||||
from cinder.i18n import _
|
||||
from cinder.volume.targets import driver
|
||||
@ -31,7 +32,7 @@ class NVMeOF(driver.Target):
|
||||
|
||||
"""Target object for block storage devices with RDMA transport."""
|
||||
|
||||
protocol = 'nvmeof'
|
||||
protocol = constants.NVMEOF_VARIANT_2
|
||||
target_protocol_map = {
|
||||
'nvmet_rdma': 'rdma',
|
||||
'nvmet_tcp': 'tcp',
|
||||
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
`Bug #1969366 <https://bugs.launchpad.net/cinder/+bug/1969366>`_: Fixed
|
||||
reporting of cacheable capability by drivers.
|
Loading…
Reference in New Issue
Block a user