From: Brian Warner <warner@lothar.com>
Date: Sat, 7 Mar 2009 23:02:43 +0000 (-0700)
Subject: web/storage.py: tolerate unknown-future displays, I'm not sure why LeaseCrawler.test_... 
X-Git-Tag: allmydata-tahoe-1.4.0~79
X-Git-Url: https://git.rkrishnan.org/specifications/%5B/?a=commitdiff_plain;h=df045650e00e2372037b76bfa649acc13ff5a2d6;p=tahoe-lafs%2Ftahoe-lafs.git

web/storage.py: tolerate unknown-future displays, I'm not sure why LeaseCrawler.test_unpredictable_future didn't catch this
---

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: