From cded69efe04530deafdd7cc75ec77a60d24ea9b0 Mon Sep 17 00:00:00 2001 From: Ivan Pchelintsev Date: Mon, 28 Sep 2020 18:54:11 +0300 Subject: [PATCH] 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 --- .../dell_emc/powerflex/test_migrate_volume.py | 16 ++++++++-------- .../volume/drivers/dell_emc/powerflex/driver.py | 8 +++++--- ...1897598-powerflex-volume-type-conversion.yaml | 9 +++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) create mode 100644 releasenotes/notes/bug-1897598-powerflex-volume-type-conversion.yaml diff --git a/cinder/tests/unit/volume/drivers/dell_emc/powerflex/test_migrate_volume.py b/cinder/tests/unit/volume/drivers/dell_emc/powerflex/test_migrate_volume.py index fd1f8224298..e0d14e41732 100644 --- a/cinder/tests/unit/volume/drivers/dell_emc/powerflex/test_migrate_volume.py +++ b/cinder/tests/unit/volume/drivers/dell_emc/powerflex/test_migrate_volume.py @@ -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) ) diff --git a/cinder/volume/drivers/dell_emc/powerflex/driver.py b/cinder/volume/drivers/dell_emc/powerflex/driver.py index 8010594f219..0e425eacf72 100644 --- a/cinder/volume/drivers/dell_emc/powerflex/driver.py +++ b/cinder/volume/drivers/dell_emc/powerflex/driver.py @@ -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" diff --git a/releasenotes/notes/bug-1897598-powerflex-volume-type-conversion.yaml b/releasenotes/notes/bug-1897598-powerflex-volume-type-conversion.yaml new file mode 100644 index 00000000000..47487eac803 --- /dev/null +++ b/releasenotes/notes/bug-1897598-powerflex-volume-type-conversion.yaml @@ -0,0 +1,9 @@ +--- + +fixes: + - | + PowerFlex driver `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.