diff --git a/cinder/tests/unit/volume/drivers/dell_emc/sc/test_scapi.py b/cinder/tests/unit/volume/drivers/dell_emc/sc/test_scapi.py index 71635a4f975..48765c99517 100644 --- a/cinder/tests/unit/volume/drivers/dell_emc/sc/test_scapi.py +++ b/cinder/tests/unit/volume/drivers/dell_emc/sc/test_scapi.py @@ -682,15 +682,15 @@ class DellSCSanAPITestCase(test.TestCase): u'readOnly': False, u'lun': 1, u'serverHba': {u'instanceId': u'64702.3282218607', - u'instanceName': u'21000024FF30441C', + u'instanceName': u'21000024ff30441c', u'objectType': u'ScServerHba'}, u'path': {u'instanceId': u'64702.64702.64703.27.73', u'instanceName': - u'21000024FF30441C-5000D31000FCBE36', + u'21000024ff30441c-5000d31000fcbe36', u'objectType': u'ScServerHbaPath'}, u'controllerPort': {u'instanceId': u'64702.5764839588723736118.50', - u'instanceName': u'5000D31000FCBE36', + u'instanceName': u'5000d31000fcbe36', u'objectType': u'ScControllerPort'}, u'instanceName': u'64702-7639', u'transport': u'FibreChannel', @@ -716,15 +716,15 @@ class DellSCSanAPITestCase(test.TestCase): u'readOnly': False, u'lun': 1, u'serverHba': {u'instanceId': u'64702.3282218606', - u'instanceName': u'21000024FF30441D', + u'instanceName': u'21000024ff30441d', u'objectType': u'ScServerHba'}, u'path': {u'instanceId': u'64702.64702.64703.27.78', - u'instanceName': u'21000024FF30441D-5000D31000FCBE36', + u'instanceName': u'21000024ff30441d-5000d31000fcbe36', u'objectType': u'ScServerHbaPath'}, u'controllerPort': {u'instanceId': u'64702.5764839588723736118.50', - u'instanceName': u'5000D31000FCBE36', + u'instanceName': u'5000d31000fcbe36', u'objectType': u'ScControllerPort'}, u'instanceName': u'64702-7640', u'transport': u'FibreChannel', @@ -750,11 +750,11 @@ class DellSCSanAPITestCase(test.TestCase): u'readOnly': False, u'lun': 1, u'serverHba': {u'instanceId': u'64702.3282218606', - u'instanceName': u'21000024FF30441D', + u'instanceName': u'21000024ff30441d', u'objectType': u'ScServerHba'}, u'path': {u'instanceId': u'64702.64702.64703.28.76', - u'instanceName': u'21000024FF30441D-5000D31000FCBE3E', + u'instanceName': u'21000024ff30441d-5000D31000FCBE3E', u'objectType': u'ScServerHbaPath'}, u'controllerPort': {u'instanceId': u'64702.5764839588723736126.60', @@ -786,15 +786,15 @@ class DellSCSanAPITestCase(test.TestCase): u'readOnly': False, u'lun': 1, u'serverHba': {u'instanceId': u'64702.3282218607', - u'instanceName': u'21000024FF30441C', + u'instanceName': u'21000024ff30441c', u'objectType': u'ScServerHba'}, u'path': {u'instanceId': u'64702.64702.64703.27.73', u'instanceName': - u'21000024FF30441C-5000D31000FCBE36', + u'21000024ff30441c-5000d31000fcbe36', u'objectType': u'ScServerHbaPath'}, u'controllerPort': {u'instanceId': u'64702.5764839588723736118.50', - u'instanceName': u'5000D31000FCBE36', + u'instanceName': u'5000d31000fcbe36', u'objectType': u'ScControllerPort'}, u'instanceName': u'64702-7639', u'transport': u'FibreChannel', @@ -820,15 +820,15 @@ class DellSCSanAPITestCase(test.TestCase): u'readOnly': False, u'lun': 1, u'serverHba': {u'instanceId': u'64702.3282218606', - u'instanceName': u'21000024FF30441D', + u'instanceName': u'21000024ff30441d', u'objectType': u'ScServerHba'}, u'path': {u'instanceId': u'64702.64702.64703.27.78', - u'instanceName': u'21000024FF30441D-5000D31000FCBE36', + u'instanceName': u'21000024ff30441d-5000d31000fcbe36', u'objectType': u'ScServerHbaPath'}, u'controllerPort': {u'instanceId': u'64702.5764839588723736118.50', - u'instanceName': u'5000D31000FCBE36', + u'instanceName': u'5000d31000fcbe36', u'objectType': u'ScControllerPort'}, u'instanceName': u'64702-7640', u'transport': u'FibreChannel', @@ -854,11 +854,11 @@ class DellSCSanAPITestCase(test.TestCase): u'readOnly': False, u'lun': 2, u'serverHba': {u'instanceId': u'64702.3282218606', - u'instanceName': u'21000024FF30441D', + u'instanceName': u'21000024ff30441d', u'objectType': u'ScServerHba'}, u'path': {u'instanceId': u'64702.64702.64703.28.76', - u'instanceName': u'21000024FF30441D-5000D31000FCBE3E', + u'instanceName': u'21000024ff30441d-5000D31000FCBE3E', u'objectType': u'ScServerHbaPath'}, u'controllerPort': {u'instanceId': u'64702.5764839588723736126.60', @@ -1026,7 +1026,7 @@ class DellSCSanAPITestCase(test.TestCase): FC_HBAS = [{u'portWwnList': [], u'iscsiIpAddress': u'0.0.0.0', u'pathCount': 2, - u'name': u'21000024FF30441C', + u'name': u'21000024ff30441c', u'connectivity': u'Up', u'instanceId': u'64702.3282218607', u'scName': u'Storage Center 64702', @@ -1038,12 +1038,12 @@ class DellSCSanAPITestCase(test.TestCase): u'remoteStorageCenter': False, u'iscsiName': u'', u'portType': u'FibreChannel', - u'instanceName': u'21000024FF30441C', + u'instanceName': u'21000024ff30441c', u'objectType': u'ScServerHba'}, {u'portWwnList': [], u'iscsiIpAddress': u'0.0.0.0', u'pathCount': 3, - u'name': u'21000024FF30441D', + u'name': u'21000024ff30441d', u'connectivity': u'Partial', u'instanceId': u'64702.3282218606', u'scName': u'Storage Center 64702', @@ -1055,13 +1055,13 @@ class DellSCSanAPITestCase(test.TestCase): u'remoteStorageCenter': False, u'iscsiName': u'', u'portType': u'FibreChannel', - u'instanceName': u'21000024FF30441D', + u'instanceName': u'21000024ff30441d', u'objectType': u'ScServerHba'}] FC_HBA = {u'portWwnList': [], u'iscsiIpAddress': u'0.0.0.0', u'pathCount': 3, - u'name': u'21000024FF30441D', + u'name': u'21000024ff30441d', u'connectivity': u'Partial', u'instanceId': u'64702.3282218606', u'scName': u'Storage Center 64702', @@ -1073,7 +1073,7 @@ class DellSCSanAPITestCase(test.TestCase): u'remoteStorageCenter': False, u'iscsiName': u'', u'portType': u'FibreChannel', - u'instanceName': u'21000024FF30441D', + u'instanceName': u'21000024ff30441d', u'objectType': u'ScServerHba'} SVR_OS_S = [{u'allowsLunGaps': True, @@ -1288,8 +1288,8 @@ class DellSCSanAPITestCase(test.TestCase): u'objectType': u'ScControllerPort'}, u'status': u'Up', u'iscsiIpAddress': u'0.0.0.0', - u'WWN': u'5000D31000FCBE36', - u'name': u'5000D31000FCBE36', + u'WWN': u'5000d31000fcbe36', + u'name': u'5000d31000fcbe36', u'parent': {u'instanceId': u'64702.5764839588723736093.57', u'instanceName': u'5000D31000FCBE1D', @@ -1310,7 +1310,7 @@ class DellSCSanAPITestCase(test.TestCase): {u'instanceId': u'64702.1.0', u'instanceName': u'Domain 0', u'objectType': u'ScControllerPortFaultDomain'}, - u'instanceName': u'5000D31000FCBE36', + u'instanceName': u'5000d31000fcbe36', u'childStatus': u'Up', u'statusMessage': u'', u'objectType': u'ScControllerPort'} @@ -1322,8 +1322,8 @@ class DellSCSanAPITestCase(test.TestCase): u'objectType': u'ScControllerPort'}, u'status': u'Up', u'iscsiIpAddress': u'0.0.0.0', - u'wWN': u'5000D31000FCBE36', - u'name': u'5000D31000FCBE36', + u'wWN': u'5000d31000fcbe36', + u'name': u'5000d31000fcbe36', u'parent': {u'instanceId': u'64702.5764839588723736093.57', u'instanceName': u'5000D31000FCBE1D', @@ -1344,7 +1344,7 @@ class DellSCSanAPITestCase(test.TestCase): {u'instanceId': u'64702.1.0', u'instanceName': u'Domain 0', u'objectType': u'ScControllerPortFaultDomain'}, - u'instanceName': u'5000D31000FCBE36', + u'instanceName': u'5000d31000fcbe36', u'childStatus': u'Up', u'statusMessage': u'', u'objectType': u'ScControllerPort'} @@ -1602,10 +1602,10 @@ class DellSCSanAPITestCase(test.TestCase): u'objectType': u'StorageCenter'}}] IQN = 'iqn.2002-03.com.compellent:5000D31000000001' - WWN = u'21000024FF30441C' + WWN = u'21000024ff30441c' - WWNS = [u'21000024FF30441C', - u'21000024FF30441D'] + WWNS = [u'21000024ff30441c', + u'21000024ff30441d'] # Used to test finding no match in find_wwns WWNS_NO_MATCH = [u'21000024FF30451C', @@ -3437,9 +3437,9 @@ class DellSCSanAPITestCase(test.TestCase): # The _find_controller_port is Mocked, so all mapping pairs # will have the same WWN for the ScControllerPort - itmapCompare = {u'21000024FF30441C': [u'5000D31000FCBE36'], - u'21000024FF30441D': - [u'5000D31000FCBE36', u'5000D31000FCBE36']} + itmapCompare = {u'21000024ff30441c': [u'5000d31000fcbe36'], + u'21000024ff30441d': + [u'5000d31000fcbe36', u'5000d31000fcbe36']} self.assertEqual(1, lun, 'Incorrect LUN') self.assertIsNotNone(wwns, 'WWNs is None') self.assertEqual(itmapCompare, itmap, 'WWN mapping incorrect') @@ -3516,12 +3516,12 @@ class DellSCSanAPITestCase(test.TestCase): self.assertTrue(mock_find_controller_port.called) self.assertEqual(1, lun, 'Incorrect LUN') - expected_wwn = ['5000D31000FCBE36', '5000D31000FCBE36', - '5000D31000FCBE36'] + expected_wwn = ['5000d31000fcbe36', '5000d31000fcbe36', + '5000d31000fcbe36'] self.assertEqual(expected_wwn, wwns, 'WWNs incorrect') - expected_itmap = {'21000024FF30441C': ['5000D31000FCBE36'], - '21000024FF30441D': ['5000D31000FCBE36', - '5000D31000FCBE36']} + expected_itmap = {'21000024ff30441c': ['5000d31000fcbe36'], + '21000024ff30441d': ['5000d31000fcbe36', + '5000d31000fcbe36']} self.assertEqual(expected_itmap, itmap, 'WWN mapping incorrect') @mock.patch.object(storagecenter_api.SCApi, @@ -3575,9 +3575,9 @@ class DellSCSanAPITestCase(test.TestCase): self.assertTrue(mock_find_controller_port.called) # The _find_controller_port is Mocked, so all mapping pairs # will have the same WWN for the ScControllerPort - itmapCompare = {u'21000024FF30441C': [u'5000D31000FCBE36'], - u'21000024FF30441D': - [u'5000D31000FCBE36', u'5000D31000FCBE36']} + itmapCompare = {u'21000024ff30441c': [u'5000d31000fcbe36'], + u'21000024ff30441d': + [u'5000d31000fcbe36', u'5000d31000fcbe36']} self.assertEqual(1, lun, 'Incorrect LUN') self.assertIsNotNone(wwns, 'WWNs is None') self.assertEqual(itmapCompare, itmap, 'WWN mapping incorrect') diff --git a/cinder/volume/drivers/dell_emc/sc/storagecenter_api.py b/cinder/volume/drivers/dell_emc/sc/storagecenter_api.py index 5bae7da50b1..95f6411ae0f 100644 --- a/cinder/volume/drivers/dell_emc/sc/storagecenter_api.py +++ b/cinder/volume/drivers/dell_emc/sc/storagecenter_api.py @@ -1692,7 +1692,14 @@ class SCApi(object): {'lun': lun, 'wwn': wwns, 'map': itmap}) - return lun, wwns, itmap + + # Return the response in lowercase + wwns_lower = [w.lower() for w in wwns] + itmap_lower = dict() + for key in itmap.keys(): + itmap_lower[key.lower()] = [v.lower() for v in itmap[key]] + + return lun, wwns_lower, itmap_lower def _find_active_controller(self, scvolume): """Finds the controller on which the Dell volume is active.