From df045650e00e2372037b76bfa649acc13ff5a2d6 Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Sat, 7 Mar 2009 16:02:43 -0700 Subject: [PATCH] web/storage.py: tolerate unknown-future displays, I'm not sure why LeaseCrawler.test_unpredictable_future didn't catch this --- src/allmydata/web/storage.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/allmydata/web/storage.py b/src/allmydata/web/storage.py index 1977082a..686e92af 100644 --- a/src/allmydata/web/storage.py +++ b/src/allmydata/web/storage.py @@ -134,9 +134,13 @@ class StorageStatus(rend.Page): % abbreviate_time(lc.age_limit)] def format_recovered(self, sr, a): + def maybe(d): + if d is None: + return "?" + return "%d" % d space = abbreviate_space(sr["%s-diskbytes" % a]) - return "%d buckets, %d shares, %s" % (sr["%s-numbuckets" % a], - sr["%s-numshares" % a], + return "%s buckets, %s shares, %s" % (maybe(sr["%s-numbuckets" % a]), + maybe(sr["%s-numshares" % a]), space) def render_lease_current_cycle_progress(self, ctx, data): @@ -162,14 +166,18 @@ class StorageStatus(rend.Page): def add(*pieces): p[T.li[pieces]] + def maybe(d): + if d is None: + return "?" + return "%d" % d add("So far, this cycle has examined %d shares in %d buckets" % (so_far["shares-examined"], so_far["buckets-examined"])) add("and has recovered: ", self.format_recovered(sr, "actual")) if so_far["expiration-enabled"]: add("The remainder of this cycle is expected to recover: ", self.format_recovered(esr, "actual")) - add("The whole cycle is expected to examine %d shares in %d buckets" - % (ec["shares-examined"], ec["buckets-examined"])) + add("The whole cycle is expected to examine %s shares in %s buckets" + % (maybe(ec["shares-examined"]), maybe(ec["buckets-examined"]))) add("and to recover: ", self.format_recovered(ecr, "actual")) else: -- 2.45.2