From: Brian Warner <warner@lothar.com> Date: Tue, 13 Mar 2012 02:57:36 +0000 (-0700) Subject: Add nickname/nodeid to storage-status web page. Closes #1204. X-Git-Url: https://git.rkrishnan.org/%5B/%5D%20/uri/frontends/flags?a=commitdiff_plain;h=880af4e1fd398adb290ed7cb6c56c1d2306a0481;p=tahoe-lafs%2Ftahoe-lafs.git Add nickname/nodeid to storage-status web page. Closes #1204. Also add tahoe.css to the page, to make it look slightly prettier. --- diff --git a/src/allmydata/test/test_storage.py b/src/allmydata/test/test_storage.py index bf1e3fd5..d51180d2 100644 --- a/src/allmydata/test/test_storage.py +++ b/src/allmydata/test/test_storage.py @@ -3966,13 +3966,16 @@ class WebStatus(unittest.TestCase, pollmixin.PollMixin, WebRenderingMixin): def test_status(self): basedir = "storage/WebStatus/status" fileutil.make_dirs(basedir) - ss = StorageServer(basedir, "\x00" * 20) + nodeid = "\x00" * 20 + ss = StorageServer(basedir, nodeid) ss.setServiceParent(self.s) - w = StorageStatus(ss) + w = StorageStatus(ss, "nickname") d = self.render1(w) def _check_html(html): self.failUnlessIn("<h1>Storage Server Status</h1>", html) s = remove_tags(html) + self.failUnlessIn("Server Nickname: nickname", s) + self.failUnlessIn("Server Nodeid: %s" % base32.b2a(nodeid), s) self.failUnlessIn("Accepting new shares: Yes", s) self.failUnlessIn("Reserved space: - 0 B (0)", s) d.addCallback(_check_html) diff --git a/src/allmydata/web/root.py b/src/allmydata/web/root.py index 47793201..2cd315d9 100644 --- a/src/allmydata/web/root.py +++ b/src/allmydata/web/root.py @@ -142,7 +142,7 @@ class Root(rend.Page): s = client.getServiceNamed("storage") except KeyError: s = None - self.child_storage = storage.StorageStatus(s) + self.child_storage = storage.StorageStatus(s, self.client.nickname) self.child_uri = URIHandler(client) self.child_cap = URIHandler(client) diff --git a/src/allmydata/web/storage.py b/src/allmydata/web/storage.py index f224c289..24d769bb 100644 --- a/src/allmydata/web/storage.py +++ b/src/allmydata/web/storage.py @@ -3,7 +3,7 @@ import time, simplejson from nevow import rend, tags as T, inevow from allmydata.web.common import getxmlfile, abbreviate_time, get_arg from allmydata.util.abbreviate import abbreviate_space -from allmydata.util import time_format +from allmydata.util import time_format, idlib def remove_prefix(s, prefix): if not s.startswith(prefix): @@ -14,9 +14,10 @@ class StorageStatus(rend.Page): docFactory = getxmlfile("storage_status.xhtml") # the default 'data' argument is the StorageServer instance - def __init__(self, storage): + def __init__(self, storage, nickname=""): rend.Page.__init__(self, storage) self.storage = storage + self.nickname = nickname def renderHTTP(self, ctx): req = inevow.IRequest(ctx) @@ -34,6 +35,11 @@ class StorageStatus(rend.Page): } return simplejson.dumps(d, indent=1) + "\n" + def data_nickname(self, ctx, storage): + return self.nickname + def data_nodeid(self, ctx, storage): + return idlib.nodeid_b2a(self.storage.my_nodeid) + def render_storage_running(self, ctx, storage): if storage: return ctx.tag diff --git a/src/allmydata/web/storage_status.xhtml b/src/allmydata/web/storage_status.xhtml index 64029c55..19860a49 100644 --- a/src/allmydata/web/storage_status.xhtml +++ b/src/allmydata/web/storage_status.xhtml @@ -1,6 +1,7 @@ <html xmlns:n="http://nevow.com/ns/nevow/0.1"> <head> <title>Tahoe-LAFS - Storage Server Status</title> + <link href="/tahoe.css" rel="stylesheet" type="text/css"/> <link href="/icon.png" rel="shortcut icon" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> @@ -53,12 +54,11 @@ </tr> </table> - <ul n:data="stats"> - <li>Accepting new shares: - <span n:render="bool" n:data="accepting_immutable_shares" /></li> - </ul> - <ul> + <li>Server Nickname: <span class="nickname mine" n:render="string" n:data="nickname" /></li> + <li>Server Nodeid: <span class="nodeid mine data-chars" n:render="string" n:data="nodeid" /></li> + <li n:data="stats">Accepting new shares: + <span n:render="bool" n:data="accepting_immutable_shares" /></li> <li>Total buckets: <span n:render="string" n:data="last_complete_bucket_count" /> (the number of files and directories for which this server is holding