def json(self, req): req.setHeader("content-type", "text/plain") data = {} data["active"] = active = [] for s in self._get_active_operations(): si_s = base32.b2a_or_none(s.get_storage_index()) size = s.get_size() status = s.get_status() if IUploadStatus.providedBy(s): h,c,e = s.get_progress() active.append({"type": "upload", "storage-index-string": si_s, "total-size": size, "status": status, "progress-hash": h, "progress-ciphertext": c, "progress-encode-push": e, }) elif IDownloadStatus.providedBy(s): active.append({"type": "download", "storage-index-string": si_s, "total-size": size, "status": status, "progress": s.get_progress(), }) return simplejson.dumps(data, indent=1) + "\n"
def marshal_json(s): # common item data item = { "storage-index-string": base32.b2a_or_none(s.get_storage_index()), "total-size": s.get_size(), "status": s.get_status(), } # type-specific item date if IUploadStatus.providedBy(s): h, c, e = s.get_progress() item["type"] = "upload" item["progress-hash"] = h item["progress-ciphertext"] = c item["progress-encode-push"] = e elif IDownloadStatus.providedBy(s): item["type"] = "download" item["progress"] = s.get_progress() elif IPublishStatus.providedBy(s): item["type"] = "publish" elif IRetrieveStatus.providedBy(s): item["type"] = "retrieve" elif IServermapUpdaterStatus.providedBy(s): item["type"] = "mapupdate" item["mode"] = s.get_mode() else: item["type"] = "unknown" item["class"] = s.__class__.__name__ return item
def json(self, req): req.setHeader("content-type", "text/plain") data = {} data["active"] = active = [] for s in self._get_active_operations(): si_s = base32.b2a_or_none(s.get_storage_index()) size = s.get_size() status = s.get_status() if IUploadStatus.providedBy(s): h, c, e = s.get_progress() active.append({ "type": "upload", "storage-index-string": si_s, "total-size": size, "status": status, "progress-hash": h, "progress-ciphertext": c, "progress-encode-push": e, }) elif IDownloadStatus.providedBy(s): active.append({ "type": "download", "storage-index-string": si_s, "total-size": size, "status": status, "progress": s.get_progress(), }) return simplejson.dumps(data, indent=1) + "\n"
def render_row(self, ctx, data): s = data TIME_FORMAT = "%H:%M:%S %d-%b-%Y" started_s = time.strftime(TIME_FORMAT, time.localtime(s.get_started())) ctx.fillSlots("started", started_s) si_s = base32.b2a_or_none(s.get_storage_index()) if si_s is None: si_s = "(None)" ctx.fillSlots("si", si_s) ctx.fillSlots("helper", {True: "Yes", False: "No"}[s.using_helper()]) size = s.get_size() if size is None: size = "(unknown)" elif isinstance(size, (int, long, float)): size = abbreviate_size(size) ctx.fillSlots("total_size", size) progress = data.get_progress() if IUploadStatus.providedBy(data): link = "up-%d" % data.get_counter() ctx.fillSlots("type", "upload") # TODO: make an ascii-art bar (chk, ciphertext, encandpush) = progress progress_s = ("hash: %.1f%%, ciphertext: %.1f%%, encode: %.1f%%" % ( (100.0 * chk), (100.0 * ciphertext), (100.0 * encandpush) )) ctx.fillSlots("progress", progress_s) elif IDownloadStatus.providedBy(data): link = "down-%d" % data.get_counter() ctx.fillSlots("type", "download") ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) elif IPublishStatus.providedBy(data): link = "publish-%d" % data.get_counter() ctx.fillSlots("type", "publish") ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) elif IRetrieveStatus.providedBy(data): ctx.fillSlots("type", "retrieve") link = "retrieve-%d" % data.get_counter() ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) else: assert IServermapUpdaterStatus.providedBy(data) ctx.fillSlots("type", "mapupdate %s" % data.get_mode()) link = "mapupdate-%d" % data.get_counter() ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) ctx.fillSlots("status", T.a(href=link)[s.get_status()]) return ctx.tag
def render_row(self, ctx, data): s = data started_s = render_time(s.get_started()) ctx.fillSlots("started", started_s) si_s = base32.b2a_or_none(s.get_storage_index()) if si_s is None: si_s = "(None)" ctx.fillSlots("si", si_s) ctx.fillSlots("helper", {True: "Yes", False: "No"}[s.using_helper()]) size = s.get_size() if size is None: size = "(unknown)" elif isinstance(size, (int, long, float)): size = abbreviate_size(size) ctx.fillSlots("total_size", size) progress = data.get_progress() if IUploadStatus.providedBy(data): link = "up-%d" % data.get_counter() ctx.fillSlots("type", "upload") # TODO: make an ascii-art bar (chk, ciphertext, encandpush) = progress progress_s = ("hash: %.1f%%, ciphertext: %.1f%%, encode: %.1f%%" % ( (100.0 * chk), (100.0 * ciphertext), (100.0 * encandpush) )) ctx.fillSlots("progress", progress_s) elif IDownloadStatus.providedBy(data): link = "down-%d" % data.get_counter() ctx.fillSlots("type", "download") ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) elif IPublishStatus.providedBy(data): link = "publish-%d" % data.get_counter() ctx.fillSlots("type", "publish") ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) elif IRetrieveStatus.providedBy(data): ctx.fillSlots("type", "retrieve") link = "retrieve-%d" % data.get_counter() ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) else: assert IServermapUpdaterStatus.providedBy(data) ctx.fillSlots("type", "mapupdate %s" % data.get_mode()) link = "mapupdate-%d" % data.get_counter() ctx.fillSlots("progress", "%.1f%%" % (100.0 * progress)) ctx.fillSlots("status", T.a(href=link)[s.get_status()]) return ctx.tag