The list of devices returned by driver.get_all_block_devices() will
sometimes contain broken symlinks as the SCSI device has been deleted
but the udev rule for the symlink has not yet completed.
Adding in a check to os.path.exists() will ensure that we will not
consider the broken symlinks as an “in use” device.
Change-Id: Ibb869e10976f894f9e18e9edec6739c2c3bea68c
Closes-Bug: #
1375382
{'portal': connection_properties['target_portal'],
'iqn': connection_properties['target_iqn']})
devices = self.driver.get_all_block_devices()
- devices = [dev for dev in devices if dev.startswith(device_prefix)]
+ devices = [dev for dev in devices if dev.startswith(device_prefix)
+ and os.path.exists(dev)]
if not devices:
self._disconnect_from_iscsi_portal(connection_properties)