diff options
author | Sasha Aliashkevich | 2012-11-26 10:27:05 +0000 |
---|---|---|
committer | Sasha Aliashkevich | 2012-11-26 10:27:05 +0000 |
commit | 53bf5f6c28f428adc2654de9d53b60671c4019e1 (patch) | |
tree | cc8323b372c701b57e784b4ce339fd4c95220f5b | |
parent | 5d27dfbb4213c374cbf89a3b4a5d0f8a41df3f80 (diff) |
Londiste: node-status command for local node
-rwxr-xr-x | python/londiste.py | 2 | ||||
-rw-r--r-- | python/pgq/cascade/admin.py | 25 |
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 |