--- __init__.py | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 42 insertions(+), 3 deletions(-) diff --git a/__init__.py b/__init__.py index 943e127..0c94c2d 100644 --- a/__init__.py +++ b/__init__.py @@ -60,7 +60,6 @@ def load(name): _bd.load(name) global _probesLoaded _probesLoaded = True - def getDevice(name): name = name.split('/')[-1] @@ -165,11 +164,11 @@ def getRaidSets(*disks): disks += list(disk) else: disks.append(disk) - + c = dmraid.context() rsList = [] prefix = "/dev/mapper/" - + newdisks = [] import os as _os for x in range(len(disks)): @@ -190,6 +189,46 @@ def getRaidSets(*disks): rsList.append(set) return rsList +def getDmDeps(uuid = None, major = None, minor = None, name = None): + """ Retrieve the deps for a specified map/device. + + uuid and name are strings. major and minor are converted to long before + being compared. + + Returns a set of deps for the device. + Returns () when no deps are found for the specified device. + Returns None when device was not found. + """ + # If has dpes, return a set of maps, else return an empty set. + for map in dm.maps(): + if (map.name and map.name == name) or \ + (map.uuid and map.uuid == uuid) or \ + (map.dev.minor and map.dev.minor == long(minor) and \ + map.dev.major and map.dev.major == long(major)): + return map.deps + return None + +def getDmTarget(uuid = None, major = None, minor = None, name = None): + """ Retrieve the target for a specified map/device. + + uuid and name are strings. major and minor are converted to long before + being compared. + + Returns a string. + Returns None when device was not found. + + Note: None is returned if map.table.type is None. + """ + # Return None if we don't find the map. + for map in dm.maps(): + if (map.name and map.name == name) or \ + (map.uuid and map.uuid == uuid) or \ + (map.dev.minor and map.dev.minor == long(minor) and \ + map.dev.major and map.dev.major == long(major)): + # might be worth validating tupe. + return map.table.type + return None + __all__ = [ "dm", "dmraid", "BlockDev" ] # -- 1.5.6.5 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list