From 6de2a0794fe5f78d886ef75dce3e25b16dd9f393 Mon Sep 17 00:00:00 2001 From: Brian Warner <warner@lothar.com> Date: Mon, 14 Apr 2008 23:42:20 -0700 Subject: [PATCH] web: don't break status page when there is no helper running --- src/allmydata/client.py | 10 ++++++++-- src/allmydata/test/test_system.py | 9 +++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/allmydata/client.py b/src/allmydata/client.py index bcab4602..71fd6f62 100644 --- a/src/allmydata/client.py +++ b/src/allmydata/client.py @@ -371,9 +371,15 @@ class Client(node.Node, testutil.PollMixin): return watcher.list_recent_retrieve() def list_active_helper_statuses(self): - helper = self.getServiceNamed("helper") + try: + helper = self.getServiceNamed("helper") + except KeyError: + return [] return helper.get_active_upload_statuses() def list_recent_helper_statuses(self): - helper = self.getServiceNamed("helper") + try: + helper = self.getServiceNamed("helper") + except KeyError: + return [] return helper.get_recent_upload_statuses() diff --git a/src/allmydata/test/test_system.py b/src/allmydata/test/test_system.py index 1aa682a5..e25b4fb2 100644 --- a/src/allmydata/test/test_system.py +++ b/src/allmydata/test/test_system.py @@ -1347,8 +1347,13 @@ class SystemTest(testutil.SignalMixin, testutil.PollMixin, unittest.TestCase): d.addCallback(_got_helper_status_json) # and check that client[3] (which uses a helper but does not run one - # itself) doesn't explode when you ask for its helper status with - # t=json + # itself) doesn't explode when you ask for its status + d.addCallback(lambda res: getPage(self.helper_webish_url + "status/")) + def _got_non_helper_status(res): + self.failUnless("Upload and Download Status" in res) + d.addCallback(_got_non_helper_status) + + # or for helper status with t=json d.addCallback(lambda res: getPage(self.helper_webish_url + "helper_status?t=json")) def _got_non_helper_status_json(res): -- 2.45.2