Dell EMC: SC FC Driver wwns api response in lower
Fixed the SC api to return the wwns in lower case
so os-brick rescan targets can return the right port
names.
Closes Bug: #1775649
Co-Authored-By: KC Bi <kecheng.bi@dell.com>
Change-Id: I9ad8c610f0512bdcbf2eff210a02abf8f88c425a
(cherry picked from commit 30182a55d5
)
This commit is contained in:
parent
b924a77bc2
commit
e32ecf6cd6
|
@ -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')
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue