def get_all_multipath_block_devices(self): from infi.multipathtools import MultipathClient from infi.multipathtools.connection import UnixDomainSocket client = MultipathClient(UnixDomainSocket(timeout=120)) if not client.is_running(): logger.warning("multipathd is not running") return [] devices = self._get_list_of_active_devices(client) result = [] logger.debug("Got {} devices from multipath client".format(len(devices))) for mpath_device in devices: block_dev = self.sysfs.find_block_device_by_devno(mpath_device.major_minor) if block_dev is not None: result.append(LinuxNativeMultipathBlockDevice(self.sysfs, block_dev, mpath_device)) living_devices = filter(lambda device: device._is_there_atleast_one_path_up(), result) return living_devices
def get_all_multipath_block_devices(self): from infi.multipathtools import MultipathClient client = MultipathClient() if not client.is_running(): logger.info("MultipathD is not running") return [] try: devices = self._get_list_of_active_devices(client) except IOError: raise DeviceDisappeared() result = [] logger.debug("Got {} devices from multipath client".format(len(devices))) for mpath_device in devices: block_dev = self.sysfs.find_block_device_by_devno(mpath_device.major_minor) if block_dev is not None: result.append(LinuxNativeMultipathBlockDevice(self.sysfs, block_dev, mpath_device)) living_devices = filter(lambda device: device._is_there_atleast_one_path_up(), result) return living_devices
def get_all_multipath_block_devices(self): from infi.multipathtools import MultipathClient from infi.multipathtools.connection import UnixDomainSocket client = MultipathClient(UnixDomainSocket(timeout=120)) if not client.is_running(): logger.warning("multipathd is not running") return [] devices = self._get_list_of_active_devices(client) result = [] logger.debug("Got {} devices from multipath client".format( len(devices))) for mpath_device in devices: block_dev = self.sysfs.find_block_device_by_devno( mpath_device.major_minor) if block_dev is not None: result.append( LinuxNativeMultipathBlockDevice(self.sysfs, block_dev, mpath_device)) living_devices = [ device for device in result if device._is_there_atleast_one_path_up() ] return living_devices