diff --git a/cinder/tests/unit/volume/drivers/dell_emc/powermax/powermax_data.py b/cinder/tests/unit/volume/drivers/dell_emc/powermax/powermax_data.py index 930797d6bf5..65793a13a69 100644 --- a/cinder/tests/unit/volume/drivers/dell_emc/powermax/powermax_data.py +++ b/cinder/tests/unit/volume/drivers/dell_emc/powermax/powermax_data.py @@ -1269,6 +1269,12 @@ class PowerMaxData(object): 'getDynamicRDFCapability': 'RDF1_Capable', 'RDFA': False}, 'timeFinderInfo': {'snapVXTgt': False, 'snapVXSrc': False}}] + priv_vol_func_response_multi_sg = deepcopy(priv_vol_func_response_single) + priv_vol_func_response_multi_sg[0].get('volumeHeader').update( + {'numStorageGroups': 2}) + priv_vol_func_response_multi_sg[0].get('volumeHeader').update( + {'storageGroup': ['SG1', 'SG2']}) + volume_create_info_dict = {utils.ARRAY: array, utils.DEVICE_ID: device_id} volume_info_dict = { diff --git a/cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_utils.py b/cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_utils.py index e79d9d94c0e..f1cff7afdc3 100644 --- a/cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_utils.py +++ b/cinder/tests/unit/volume/drivers/dell_emc/powermax/test_powermax_utils.py @@ -590,6 +590,11 @@ class PowerMaxUtilsTest(test.TestCase): self.assertFalse( self.utils.is_volume_manageable(volume)) + def test_is_volume_manageable_multi_sg(self): + for volume in self.data.priv_vol_func_response_multi_sg: + self.assertFalse( + self.utils.is_volume_manageable(volume)) + def test_is_snapshot_manageable(self): for volume in self.data.priv_vol_func_response_multi: self.assertTrue( diff --git a/cinder/volume/drivers/dell_emc/powermax/utils.py b/cinder/volume/drivers/dell_emc/powermax/utils.py index aeed7b9d332..eea56fbf714 100644 --- a/cinder/volume/drivers/dell_emc/powermax/utils.py +++ b/cinder/volume/drivers/dell_emc/powermax/utils.py @@ -1057,6 +1057,9 @@ class PowerMaxUtils(object): if vol_head['userDefinedIdentifier'][0:3] == 'OS-': return False + if vol_head.get('numStorageGroups', 0) > 1: + return False + return True @staticmethod