def report_file_size_status(dump_dir, file_obj, item_status): filename = dump_dir.filename_public_path(file_obj) if exists(filename): size = os.path.getsize(filename) else: item_status = "missing" size = 0 size = FileUtils.pretty_size(size) if item_status == "in-progress": return "<li class='file'>%s %s (written) </li>" % (file_obj.filename, size) elif item_status == "done": webpath_relative = dump_dir.web_path_relative(file_obj) return ("<li class='file'><a href=\"%s\">%s</a> %s</li>" % (webpath_relative, file_obj.filename, size)) else: return "<li class='missing'>%s</li>" % file_obj.filename
def report_file_size_status(dump_dir, dfname, item_status): """ args: DumpDir DumpFilename status ("in-progress", "missing", ...) """ filename = dump_dir.filename_public_path(dfname) size = None if exists(filename): size = os.path.getsize(filename) elif item_status == "in-progress": # note that because multiple files may be produced for a single dump # job, some may be complete while others are still in progress. # therefore we check the normal name first, falling back to the # inprogress name. filename = filename + DumpFilename.INPROG if exists(filename): try: size = os.path.getsize(filename) except Exception: # yes, it might be removed in that short interval of time. pass if size is None: item_status = "missing" size = 0 pretty_size = FileUtils.pretty_size(size) if item_status == "in-progress": txt = "<li class='file'>%s %s (written) </li>" % (dfname.filename, pretty_size) json_out = {'name': dfname.filename, 'size': size} elif item_status == "done": webpath_relative = dump_dir.web_path_relative(dfname) txt = ("<li class='file'><a href=\"%s\">%s</a> %s</li>" % (webpath_relative, dfname.filename, pretty_size)) json_out = {'name': dfname.filename, 'size': size, 'url': webpath_relative} else: txt = "<li class='missing'>%s</li>" % dfname.filename json_out = {'name': dfname.filename} content = {'txt': txt, 'json': json_out} return content