summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSasha Aliashkevich2012-11-26 10:27:05 +0000
committerSasha Aliashkevich2012-11-26 10:27:05 +0000
commit53bf5f6c28f428adc2654de9d53b60671c4019e1 (patch)
treecc8323b372c701b57e784b4ce339fd4c95220f5b
parent5d27dfbb4213c374cbf89a3b4a5d0f8a41df3f80 (diff)
Londiste: node-status command for local node
-rwxr-xr-xpython/londiste.py2
-rw-r--r--python/pgq/cascade/admin.py25
2 files changed, 26 insertions, 1 deletions
diff --git a/python/londiste.py b/python/londiste.py
index 8c2919c8..536d83cd 100755
--- a/python/londiste.py
+++ b/python/londiste.py
@@ -46,7 +46,7 @@ Internal Commands:
cmd_handlers = (
(('create-root', 'create-branch', 'create-leaf', 'members', 'tag-dead', 'tag-alive',
- 'change-provider', 'rename-node', 'status', 'pause', 'resume', 'node-info',
+ 'change-provider', 'rename-node', 'status', 'node-status', 'pause', 'resume', 'node-info',
'drop-node', 'takeover', 'resurrect'), londiste.LondisteSetup),
(('add-table', 'remove-table', 'add-seq', 'remove-seq', 'tables', 'seqs',
'missing', 'resync', 'wait-sync', 'wait-root', 'wait-provider',
diff --git a/python/pgq/cascade/admin.py b/python/pgq/cascade/admin.py
index c3ae8b80..02f8877f 100644
--- a/python/pgq/cascade/admin.py
+++ b/python/pgq/cascade/admin.py
@@ -381,6 +381,31 @@ class CascadeAdmin(skytools.AdminScript):
self.queue_info.print_tree()
+ def cmd_node_status(self):
+ """
+ Show status of a local node.
+ """
+ try:
+ self.load_local_info()
+ db = self.get_node_database(self.local_node)
+ curs = db.cursor()
+ node = self.queue_info.local_node
+ node.load_status(curs)
+ self.load_extra_status(curs, node)
+
+ subscriber_nodes = self.get_node_subscriber_list(self.local_node)
+
+ offset=4*' '
+ print node.get_title()
+ print offset+'Provider: %s' % node.provider_node
+ print offset+'Subscribers: %s' % ', '.join(subscriber_nodes)
+ for l in node.get_infolines():
+ print offset+l
+
+ except DBError, d:
+ msg = str(d).strip().split('\n', 1)[0]
+ print('Node %s failure: %s' % (self.local_node, msg))
+
def load_extra_status(self, curs, node):
"""Fetch extra info."""
pass