Merge "NEC driver: fix live-migration failure with FC" into stable/train

This commit is contained in:
Zuul 2020-10-07 15:44:27 +00:00 committed by Gerrit Code Review
commit 73ba22632b
3 changed files with 76 additions and 7 deletions

View File

@ -210,6 +210,17 @@ xml_out = '''
<UNIT name="RPL Attribute">IV</UNIT>
</SECTION>
</OBJECT>
<OBJECT name="Logical Disk">
<SECTION name="LD Detail Information">
<UNIT name="LDN(h)">0011</UNIT>
<UNIT name="OS Type">LX</UNIT>
<UNIT name="LD Name">6EWPOChJkdSysJmpMAB9YR</UNIT>
<UNIT name="LD Capacity">6442450944</UNIT>
<UNIT name="Pool No.(h)">0001</UNIT>
<UNIT name="Purpose">---</UNIT>
<UNIT name="RPL Attribute">IV</UNIT>
</SECTION>
</OBJECT>
<OBJECT name="Logical Disk">
<SECTION name="LD Detail Information">
<UNIT name="LDN(h)">0fff</UNIT>
@ -330,6 +341,26 @@ xml_out = '''
<UNIT name="LUN(h)">0001</UNIT>
<UNIT name="LDN(h)">0006</UNIT>
</SECTION>
<SECTION name="LUN/LD List">
<UNIT name="LUN(h)">0002</UNIT>
<UNIT name="LDN(h)">0011</UNIT>
</SECTION>
</OBJECT>
<OBJECT name="LD Set(FC)">
<SECTION name="LD Set(FC) Information">
<UNIT name="Platform">LX</UNIT>
<UNIT name="LD Set Name">OpenStack3</UNIT>
</SECTION>
<SECTION name="Path List">
<UNIT name="Path">1000-0090-FAA0-786D</UNIT>
</SECTION>
<SECTION name="Path List">
<UNIT name="Path">1000-0090-FAA0-786C</UNIT>
</SECTION>
<SECTION name="LUN/LD List">
<UNIT name="LUN(h)">0001</UNIT>
<UNIT name="LDN(h)">0011</UNIT>
</SECTION>
</OBJECT>
<OBJECT name="LD Set(iSCSI)">
<SECTION name="LD Set(iSCSI) Information">
@ -1032,6 +1063,37 @@ class ExportTest(volume_helper.MStorageDSVDriver, test.TestCase):
self._fc_terminate_connection(vol, connector)
delldsetld_mock.assert_not_called()
vol = fake_volume_obj(ctx, id='ccd662e5-2efe-4899-b12f-114b5cad81c3')
connector = {'wwpns': ["10000090FAA0786A", "10000090FAA0786B"],
'host': 'HostA'}
atchmnt = {
'id': constants.ATTACHMENT_ID,
'volume_id': vol.id,
'connector': connector
}
attach_object = volume_attachment.VolumeAttachment(**atchmnt)
attachment = volume_attachment.VolumeAttachmentList(
objects=[attach_object])
vol.volume_attachment = attachment
info = self._fc_initialize_connection(vol, connector)
self.assertEqual(2, info['data']['target_lun'])
connector = {'wwpns': ["10000090FAA0786C", "10000090FAA0786D"],
'host': 'HostB'}
atchmnt = {
'id': constants.ATTACHMENT_ID,
'volume_id': vol.id,
'connector': connector
}
attach_object = volume_attachment.VolumeAttachment(**atchmnt)
attachment = volume_attachment.VolumeAttachmentList(
objects=[attach_object])
vol.volume_attachment = attachment
info = self._fc_initialize_connection(vol, connector)
self.assertEqual(1, info['data']['target_lun'])
def test_fc_terminate_connection(self):
ctx = context.RequestContext('admin', 'fake', True)
vol = fake_volume_obj(ctx, id='46045673-41e7-44a7-9333-02f07feab04b')
@ -1243,7 +1305,12 @@ class NonDisruptiveBackup_test(volume_helper.MStorageDSVDriver,
'protocol': 'FC',
'wwpn': ['1000-0090-FAA0-786A', '1000-0090-FAA0-786B'],
'port': []}
return_ldset = [ldset_lds0, ldset_lds1]
ldset_lds2 = {'ldsetname': 'LX:OpenStack1',
'lds': {6: {'ldn': 6, 'lun': 1}},
'protocol': 'FC',
'wwpn': ['1000-0090-FAA0-786A', '1000-0090-FAA0-786B'],
'port': []}
return_ldset = [ldset_lds0, ldset_lds1, ldset_lds2]
self.mock_object(self, '_validate_fcldset_exist',
side_effect=return_ldset)
mocker = self.mock_object(self._cli, 'addldsetld',

View File

@ -1278,15 +1278,11 @@ class MStorageDriver(volume_common.MStorageVolumeCommon):
else:
ldn = lds[ldname]['ldn']
lun = None
for ldset in ldsets.values():
if ldn in ldset['lds']:
lun = ldset['lds'][ldn]['lun']
break
ldset = self._validate_fcldset_exist(ldsets, connector)
info = {
'driver_volume_type': 'fibre_channel',
'data': {'target_lun': lun,
'data': {'target_lun': ldset['lds'][ldn]['lun'],
'target_wwn': target_wwns,
'initiator_target_map': init_targ_map}}

View File

@ -0,0 +1,6 @@
---
fixes:
- |
`Bug #1887908 <https://bugs.launchpad.net/cinder/+bug/1887908>`_
In NEC driver, fix live-migration failure with FC.