Merge "Stop calling multipath -r when attaching/detaching iSCSI volumes"

This commit is contained in:
Jenkins 2016-11-04 21:55:40 +00:00 committed by Gerrit Code Review
commit 9be0b3d2c4
2 changed files with 9 additions and 23 deletions

View File

@ -475,7 +475,6 @@ class ISCSIConnector(base.BaseLinuxConnector, base_iscsi.BaseISCSIConnector):
target_lun(s) - LUN id of the volume
"""
if self.use_multipath:
self._rescan_multipath()
host_device = multipath_device = None
host_devices = self._get_device_path(connection_properties)
# Choose an accessible host device
@ -779,8 +778,6 @@ class ISCSIConnector(base.BaseLinuxConnector, base_iscsi.BaseISCSIConnector):
props['target_iqn'] = iqn
self._disconnect_from_iscsi_portal(props)
self._rescan_multipath()
def _get_multipath_iqns(self, multipath_devices, mpath_map):
entries = self._get_iscsi_devices()
iqns = []
@ -847,6 +844,3 @@ class ISCSIConnector(base.BaseLinuxConnector, base_iscsi.BaseISCSIConnector):
check_exit_code=[0, 1, 21, 255])
self._run_iscsiadm_bare(('-m', 'session', '--rescan'),
check_exit_code=[0, 1, 21, 255])
def _rescan_multipath(self):
self._run_multipath(['-r'], check_exit_code=[0, 1, 21])

View File

@ -407,12 +407,11 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
'_get_target_portals_from_iscsiadm_output')
@mock.patch.object(iscsi.ISCSIConnector, '_connect_to_iscsi_portal')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_iscsi')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(os.path, 'exists', return_value=True)
@mock.patch.object(base.BaseLinuxConnector, '_discover_mpath_device')
def test_connect_volume_with_multipath(
self, mock_discover_mpath_device, exists_mock,
rescan_multipath_mock, rescan_iscsi_mock, connect_to_mock,
rescan_iscsi_mock, connect_to_mock,
portals_mock, iscsiadm_mock, mock_iscsi_wwn):
mock_iscsi_wwn.return_value = test_connector.FAKE_SCSI_WWN
location = '10.0.2.15:3260'
@ -587,7 +586,6 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(iscsi.ISCSIConnector, '_get_multipath_device_map',
return_value={})
@mock.patch.object(iscsi.ISCSIConnector, '_get_iscsi_devices')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_run_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_get_multipath_iqns')
@mock.patch.object(iscsi.ISCSIConnector, '_run_iscsiadm')
@ -596,8 +594,8 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
def test_connect_volume_with_multiple_portals_primary_error(
self, mock_process_lun_id, mock_discover_mpath_device,
mock_iscsiadm, mock_get_iqn, mock_run_multipath,
mock_rescan_multipath, mock_iscsi_devices,
mock_get_multipath_device_map, mock_devices, mock_exists,
mock_iscsi_devices, mock_get_multipath_device_map,
mock_devices, mock_exists,
mock_scsi_wwn):
mock_scsi_wwn.return_value = test_connector.FAKE_SCSI_WWN
location1 = '10.0.2.15:3260'
@ -668,12 +666,11 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(iscsi.ISCSIConnector, '_connect_to_iscsi_portal')
@mock.patch.object(host_driver.HostDriver, 'get_all_block_devices')
@mock.patch.object(iscsi.ISCSIConnector, '_get_iscsi_devices')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_run_multipath')
@mock.patch.object(base.BaseLinuxConnector, '_discover_mpath_device')
def test_connect_volume_with_multipath_connecting(
self, mock_discover_mpath_device, mock_run_multipath,
mock_rescan_multipath, mock_iscsi_devices, mock_devices,
mock_iscsi_devices, mock_devices,
mock_connect, mock_portals, mock_exists, mock_scsi_wwn):
mock_scsi_wwn.return_value = test_connector.FAKE_SCSI_WWN
location1 = '10.0.2.15:3260'
@ -715,10 +712,9 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(iscsi.ISCSIConnector, '_connect_to_iscsi_portal')
@mock.patch.object(host_driver.HostDriver, 'get_all_block_devices')
@mock.patch.object(iscsi.ISCSIConnector, '_get_iscsi_devices')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_run_multipath')
def test_connect_volume_multipath_failed_iscsi_login(
self, mock_run_multipath, mock_rescan_multipath,
self, mock_run_multipath,
mock_iscsi_devices, mock_devices,
mock_connect, mock_portals, mock_exists):
location1 = '10.0.2.15:3260'
@ -819,7 +815,6 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(iscsi.ISCSIConnector,
'_get_target_portals_from_iscsiadm_output')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_iscsi')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_get_iscsi_devices')
@mock.patch.object(host_driver.HostDriver, 'get_all_block_devices')
@mock.patch.object(iscsi.ISCSIConnector,
@ -829,7 +824,7 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
def test_disconnect_volume_multipath_iscsi(
self, exists_mock, multipath_iqn_mock, disconnect_mock,
get_all_devices_mock, get_iscsi_devices_mock,
rescan_multipath_mock, rescan_iscsi_mock, get_portals_mock,
rescan_iscsi_mock, get_portals_mock,
get_multipath_device_map_mock):
iqn1 = 'iqn.2013-01.ro.com.netapp:node.netapp01'
iqn2 = 'iqn.2013-01.ro.com.netapp:node.netapp02'
@ -852,7 +847,6 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(iscsi.ISCSIConnector,
'_get_target_portals_from_iscsiadm_output')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_iscsi')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_get_iscsi_devices')
@mock.patch.object(host_driver.HostDriver, 'get_all_block_devices')
@mock.patch.object(iscsi.ISCSIConnector,
@ -863,7 +857,7 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
def test_disconnect_volume_multipath_iscsi_other_targets(
self, exists_mock, multipath_iqn_mock, get_multipath_map_mock,
disconnect_mock, get_all_devices_mock, get_iscsi_devices_mock,
rescan_multipath_mock, rescan_iscsi_mock, get_portals_mock):
rescan_iscsi_mock, get_portals_mock):
iqn1 = 'iqn.2010-10.org.openstack:target-1'
iqn2 = 'iqn.2010-10.org.openstack:target-2'
portal = '10.0.0.1:3260'
@ -888,7 +882,6 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(iscsi.ISCSIConnector,
'_get_target_portals_from_iscsiadm_output')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_iscsi')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_get_iscsi_devices',
return_value=[])
@mock.patch.object(host_driver.HostDriver, 'get_all_block_devices',
@ -898,7 +891,7 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(os.path, 'exists', return_value=True)
def test_disconnect_volume_multipath_iscsi_without_other_mp_devices(
self, exists_mock, disconnect_mock, get_all_devices_mock,
get_iscsi_devices_mock, rescan_multipath_mock, rescan_iscsi_mock,
get_iscsi_devices_mock, rescan_iscsi_mock,
get_portals_mock, get_multipath_device_map_mock):
portal = '10.0.2.15:3260'
name = 'volume-00000001'
@ -917,7 +910,6 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(iscsi.ISCSIConnector,
'_get_target_portals_from_iscsiadm_output')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_iscsi')
@mock.patch.object(iscsi.ISCSIConnector, '_rescan_multipath')
@mock.patch.object(iscsi.ISCSIConnector, '_get_iscsi_devices')
@mock.patch.object(host_driver.HostDriver, 'get_all_block_devices')
@mock.patch.object(iscsi.ISCSIConnector,
@ -925,7 +917,7 @@ class ISCSIConnectorTestCase(test_connector.ConnectorTestCase):
@mock.patch.object(os.path, 'exists', return_value=False)
def test_disconnect_volume_multipath_iscsi_with_invalid_symlink(
self, exists_mock, disconnect_mock, get_all_devices_mock,
get_iscsi_devices_mock, rescan_multipath_mock, rescan_iscsi_mock,
get_iscsi_devices_mock, rescan_iscsi_mock,
get_portals_mock, get_multipath_device_map_mock):
# Simulate a broken symlink by returning False for os.path.exists(dev)
portal = '10.0.0.1:3260'