Deprecate / obsolete NetApp volume extra specs
The NetApp Data ONTAP (Cluster-mode) NFS & iSCSI drivers for Juno support
the Cinder pools feature, but the drivers are reporting two qualified
extra specs that must be converted to unqualified extra specs in order to
be used by the Cinder scheduler's capability filter. Furthermore, there
are four extra specs that must be deprecated due to having the pools
feature. Warnings will be logged during volume creation if any of the
obsolete or deprecated extra specs are seen in the volume type.
Change-Id: I4dbd667610e481356304a12b8dae84cff61aa9d9
Closes-bug: 1374630
(cherry picked from commit 4cb4be4122)
This commit is contained in:
committed by
Thierry Carrez
parent
20d1476624
commit
40eff25fce
@@ -45,6 +45,14 @@ from cinder.volume import volume_types
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
OBSOLETE_SSC_SPECS = {'netapp:raid_type': 'netapp_raid_type',
|
||||
'netapp:disk_type': 'netapp_disk_type'}
|
||||
DEPRECATED_SSC_SPECS = {'netapp_unmirrored': 'netapp_mirrored',
|
||||
'netapp_nodedup': 'netapp_dedup',
|
||||
'netapp_nocompression': 'netapp_compression',
|
||||
'netapp_thick_provisioned': 'netapp_thin_provisioned'}
|
||||
|
||||
|
||||
def provide_ems(requester, server, stats, netapp_backend,
|
||||
server_type="cluster"):
|
||||
"""Provide ems with volume stats for the requester.
|
||||
@@ -364,3 +372,16 @@ def convert_es_fmt_to_uuid(es_label):
|
||||
def round_down(value, precision):
|
||||
return float(decimal.Decimal(six.text_type(value)).quantize(
|
||||
decimal.Decimal(precision), rounding=decimal.ROUND_DOWN))
|
||||
|
||||
|
||||
def log_extra_spec_warnings(extra_specs):
|
||||
for spec in (set(extra_specs.keys() if extra_specs else []) &
|
||||
set(OBSOLETE_SSC_SPECS.keys())):
|
||||
msg = _('Extra spec %(old)s is obsolete. Use %(new)s instead.')
|
||||
args = {'old': spec, 'new': OBSOLETE_SSC_SPECS[spec]}
|
||||
LOG.warn(msg % args)
|
||||
for spec in (set(extra_specs.keys() if extra_specs else []) &
|
||||
set(DEPRECATED_SSC_SPECS.keys())):
|
||||
msg = _('Extra spec %(old)s is deprecated. Use %(new)s instead.')
|
||||
args = {'old': spec, 'new': DEPRECATED_SSC_SPECS[spec]}
|
||||
LOG.warn(msg % args)
|
||||
|
||||
Reference in New Issue
Block a user