webapi: add 'summary' string to checker results JSON

This commit is contained in:
Brian Warner 2008-11-18 18:28:26 -07:00
parent d224d22cb7
commit 7932fadb5e
4 changed files with 12 additions and 1 deletions

View File

@ -750,6 +750,7 @@ POST $URL?t=check
storage-index: a base32-encoded string with the objects's storage index,
or an empty string for LIT files
summary: a string, with a one-line summary of the stats of the file
results: a dictionary that describes the state of the file. For LIT files,
this dictionary has only the 'healthy' key, which will always be
True. For distributed files, this dictionary has the following

View File

@ -109,7 +109,11 @@ class SimpleCHKFileChecker:
",".join(["sh%d" % shnum
for shnum in sorted(missing)]))
r.set_report(report)
# TODO: r.set_summary(summary)
if healthy:
r.set_summary("Healthy")
else:
r.set_summary("Not Healthy")
# TODO: more detail
return r
class VerifyingOutput:
@ -123,6 +127,7 @@ class VerifyingOutput:
self._results = results
results.set_healthy(False)
results.set_recoverable(False)
results.set_summary("Not Healthy")
def setup_hashtrees(self, plaintext_hashtree, crypttext_hashtree):
self._crypttext_hash_tree = crypttext_hashtree
@ -145,6 +150,7 @@ class VerifyingOutput:
def finish(self):
self._results.set_healthy(True)
self._results.set_recoverable(True)
self._results.set_summary("Healthy")
# the return value of finish() is passed out of FileDownloader._done,
# but SimpleCHKFileVerifier overrides this with the CheckerResults
# instance instead.

View File

@ -2204,6 +2204,9 @@ class DeepCheckWebGood(DeepCheckBase, unittest.TestCase):
self.failUnlessEqual(data["storage-index"],
base32.b2a(n.get_storage_index()), where)
self.failUnless("summary" in data, (where, data))
self.failUnlessEqual(data["summary"].lower(), "healthy",
"%s: '%s'" % (where, data["summary"]))
r = data["results"]
self.failUnlessEqual(r["healthy"], True, where)
needs_rebalancing = bool( len(self.clients) < 10 )

View File

@ -82,6 +82,7 @@ class ResultsBase:
def _json_check_results(self, r):
data = {}
data["storage-index"] = r.get_storage_index_string()
data["summary"] = r.get_summary()
data["results"] = self._json_check_counts(r.get_data())
data["results"]["needs-rebalancing"] = r.needs_rebalancing()
data["results"]["healthy"] = r.is_healthy()