def __init__(self,fstab_file=None): if fstab_file: self.fstab_file = fstab_file self.cache = [] self.rotateCache = [] self.dictUUID = getUUIDDict() self.rebuildCache()
def isFstabMount(pathname,mapDevUuid={},listFstab=[]): """Get mount point or device from fstab""" def removeQuotes(s): return s.replace('"','').replace("'","") if pathname == "swap": absPath = "swap" else: absPath = path.abspath(pathname) if not mapDevUuid: mapDevUuid.update(getUUIDDict()) # convert fstab to # [['/dev/sda3', '/', '', 'reiserfs', 'noatime', '', '', '0', '2\n'], # ['/dev/sda5', '/var/calculate', 'reiserfs', 'noatime', '0', '0\n']] #if not listFstab: if not listFstab: listFstab.extend( map(lambda x: [mapDevUuid.get(removeQuotes(x[0]),x[0]), x[1] if x[2] != "swap" else "swap"], filter(lambda x: len(x) >= 4, map(lambda x: filter(lambda x: x, x.replace('\t',' ').split(' ')), filter(lambda x: not x.startswith('#') and x.strip(), open("/etc/fstab")))))) # get mount point or device or dir return filter(lambda x: x!=absPath, reduce(lambda x,y: y, filter(lambda x: absPath in x and x[1] != "none", listFstab),[""]))[0]