From 97852cd626a436fb26a30dd97ca1d6293ebe9b76 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@allmydata.com>
Date: Tue, 12 Aug 2008 20:35:30 -0700
Subject: [PATCH] immutable checker: add a status_report field

---
 src/allmydata/immutable/checker.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/allmydata/immutable/checker.py b/src/allmydata/immutable/checker.py
index c84f7fe9..fa1d6afb 100644
--- a/src/allmydata/immutable/checker.py
+++ b/src/allmydata/immutable/checker.py
@@ -24,6 +24,7 @@ class Results:
             self.storage_index_s = "<none>"
         else:
             self.storage_index_s = base32.b2a(storage_index)[:6]
+        self.status_report = "[not generated yet]" # string
 
     def is_healthy(self):
         return self.healthy
@@ -45,6 +46,9 @@ class Results:
             s += "Healthy!\n"
         else:
             s += "Not Healthy!\n"
+        s += "\n"
+        s += self.status_report
+        s += "\n"
         return s
 
 class DeepCheckResults:
@@ -149,9 +153,17 @@ class SimpleCHKFileChecker:
 
     def _done(self, res):
         r = Results(self.storage_index)
+        report = []
         r.healthy = bool(len(self.found_shares) >= self.total_shares)
         r.stuff = (self.needed_shares, self.total_shares,
                    len(self.found_shares), self.sharemap)
+        if len(self.found_shares) < self.total_shares:
+            wanted = set(range(self.total_shares))
+            missing = wanted - self.found_shares
+            report.append("Missing shares: %s" %
+                          ",".join(["sh%d" % shnum
+                                    for shnum in sorted(missing)]))
+        r.status_report = "\n".join(report) + "\n"
         return r
 
 class VerifyingOutput:
-- 
2.45.2