Merge "Fix cacheable capability"

This commit is contained in:
Zuul 2022-04-29 19:50:24 +00:00 committed by Gerrit Code Review
commit 2611f67393
66 changed files with 200 additions and 103 deletions

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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': (

View File

@ -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': (

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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:

View File

@ -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

View File

@ -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.

View File

@ -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):

View File

@ -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):

View File

@ -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, '

View File

@ -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, '

View File

@ -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()

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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)

View File

@ -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

View File

@ -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()

View File

@ -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:

View File

@ -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

View File

@ -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}')

View File

@ -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'

View File

@ -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,

View File

@ -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"])

View File

@ -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 = \

View File

@ -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})

View File

@ -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())

View File

@ -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,

View File

@ -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,

View File

@ -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):

View File

@ -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):

View File

@ -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),

View File

@ -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')

View File

@ -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'] = \

View File

@ -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

View File

@ -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):

View File

@ -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')
]

View File

@ -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.')

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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']

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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'

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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()

View File

@ -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

View File

@ -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(

View File

@ -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:

View File

@ -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):

View File

@ -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',

View File

@ -0,0 +1,5 @@
---
fixes:
- |
`Bug #1969366 <https://bugs.launchpad.net/cinder/+bug/1969366>`_: Fixed
reporting of cacheable capability by drivers.