Fix PowerFlex volume type conversion

Fix bug with PowerFlex storage-assisted volume migration
when volume migration was performed without conversion of
volume type in cases where it should have been converted
to/from thin/thick provisioned.

Change-Id: Icf27ea898507ffec5e410788efcdca3649a73c99
Closes-Bug: #1897598
(cherry picked from commit cded69efe0)
This commit is contained in:
Ivan Pchelintsev 2020-09-28 18:54:11 +03:00
parent e9423e9705
commit e9af629d0e
3 changed files with 22 additions and 11 deletions

View File

@ -29,15 +29,15 @@ from cinder.tests.unit.volume.drivers.dell_emc import powerflex
MIGRATE_VOLUME_PARAMS_CASES = (
# Cases for testing _get_volume_params function.
# +----------------------------------------------------+------------------+
# |Volume type|Real provisioning|Conversion|Compression|Pool support thick|
# |Volume Type|Real provisioning|Conversion|Compression|Pool support thick|
# +-----------+-----------------+----------+-----------+-----+------------+
('thin', 'ThinProvisioned', 'NoConversion', 'None', False),
('thin', 'ThickProvisioned', 'ThickToThin', 'None', True),
('thick', 'ThinProvisioned', 'NoConversion', 'None', False),
('thick', 'ThinProvisioned', 'ThinToThick', 'None', True),
('compressed', 'ThinProvisioned', 'NoConversion', 'Normal', False),
('compressed', 'ThickProvisioned', 'ThickToThin', 'Normal', False),
('compressed', 'ThickProvisioned', 'ThickToThin', 'None', False)
('ThinProvisioned', 'ThinProvisioned', 'NoConversion', 'None', False),
('ThinProvisioned', 'ThickProvisioned', 'ThickToThin', 'None', True),
('ThickProvisioned', 'ThinProvisioned', 'NoConversion', 'None', False),
('ThickProvisioned', 'ThinProvisioned', 'ThinToThick', 'None', True),
('ThinProvisioned', 'ThinProvisioned', 'NoConversion', 'Normal', False),
('ThinProvisioned', 'ThickProvisioned', 'ThickToThin', 'Normal', False),
('ThinProvisioned', 'ThickProvisioned', 'ThickToThin', 'None', False)
)

View File

@ -92,9 +92,11 @@ class PowerFlexDriver(driver.VolumeDriver):
3.5.3 - Add revert volume to snapshot support
3.5.4 - Fix for Bug #1823200. See OSSN-0086 for details.
3.5.5 - Rebrand VxFlex OS to PowerFlex.
3.5.6 - Fix for Bug #1897598 when volume can be migrated without
conversion of its type.
"""
VERSION = "3.5.5"
VERSION = "3.5.6"
# ThirdPartySystems wiki
CI_WIKI_NAME = "DellEMC_PowerFlex_CI"
@ -1396,13 +1398,13 @@ class PowerFlexDriver(driver.VolumeDriver):
)
if (
real_provisioning == "ThickProvisioned" and
(provisioning in ["thin", "compressed"] or
(provisioning == "ThinProvisioned" or
not pool_supports_thick_vols)
):
params["volTypeConversion"] = "ThickToThin"
elif (
real_provisioning == "ThinProvisioned" and
provisioning == "thick" and
provisioning == "ThickProvisioned" and
pool_supports_thick_vols
):
params["volTypeConversion"] = "ThinToThick"

View File

@ -0,0 +1,9 @@
---
fixes:
- |
PowerFlex driver `bug #1897598
<https://bugs.launchpad.net/cinder/+bug/1897598>`_: Fixed bug with
PowerFlex storage-assisted volume migration when volume migration was
performed without conversion of volume type in cases where it should have
been converted to/from thin/thick provisioned.