def findUnderlyingStorage(devPath): # make sure device exists and is accessible os.stat(devPath) sessions = [] try: devs = devicemapper.getSlaves(os.path.basename(devPath)) except: devs = [os.path.basename(devPath)] for realDev in devs: if not devicemapper.isVirtualDevice(realDev): sessions.append(getiScsiSession(realDev)) continue for slave in devicemapper.getSlaves(realDev): sessions.extend(findUnderlyingStorage(os.path.join("/dev", slave))) return sessions
def test_is_virtual_device(zero_dm_device): dm_id = devicemapper.getDmId(zero_dm_device) assert devicemapper.isVirtualDevice(dm_id)