def get_entry_or_raise(raw_path, allow_normal_for_missing=False): try: result = split_path(raw_path, path_resolver) (parent_clause, path, filename, mime_type, is_hidden) = result except GdNotFoundError: _logger.exception("Could not retrieve clause for non-existent " "file-path [%s] (parent does not exist)." % (raw_path)) if allow_normal_for_missing is True: raise else: raise FuseOSError(ENOENT) except: _logger.exception("Could not process file-path [%s]." % (raw_path)) raise FuseOSError(EIO) filepath = build_filepath(path, filename) path_relations = PathRelations.get_instance() try: entry_clause = path_relations.get_clause_from_path(filepath) except GdNotFoundError: _logger.exception("Could not retrieve clause for non-existent " "file-path [%s] (parent exists)." % (filepath)) if allow_normal_for_missing is True: raise else: raise FuseOSError(ENOENT) except: _logger.exception("Could not retrieve clause for path [%s]. " % (filepath)) raise FuseOSError(EIO) if not entry_clause: if allow_normal_for_missing is True: raise GdNotFoundError() else: raise FuseOSError(ENOENT) return (entry_clause[CLAUSE_ENTRY], path, filename)