def __init__(self, path, flags, *mode): file_hash, action, rest = parse_path(path) file_descr = get_file_descr(file_hash) if not rest: rest = '' file_ids = get_referenced_file_ids(file_descr) tree = file_ids_as_tree(file_ids, os.path.dirname(file_descr.file.filename)) files = get_files_for_path(tree, rest) if not isinstance(files, dict): abs_path = abspath(files[1].filename, file_descr) self.file = os.fdopen(os.open(abs_path, flags, *mode), flag2mode(flags)) self.fd = self.file.fileno()
def getattr_mount_file(self, path, file_hash, action, rest, files, file_descr): abs_path = abspath(files[1].filename, file_descr) size = os.stat(abs_path).st_size if os.path.isfile(abs_path) else 0 return MyStat(False, size)