summaryrefslogtreecommitdiff
path: root/python/qadmin.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qadmin.py')
-rwxr-xr-xpython/qadmin.py62
1 files changed, 37 insertions, 25 deletions
diff --git a/python/qadmin.py b/python/qadmin.py
index 839b3a35..aed41c56 100755
--- a/python/qadmin.py
+++ b/python/qadmin.py
@@ -6,20 +6,20 @@
connect [ queue=.. ] [ node=.. ];
install pgq | londiste;
+ show queue [ <qname | *> ];
create queue <qname>;
alter queue <qname | *> set param = , ...;
drop queue <qname>;
- show queue [ <qname | *> ];
- show table <tbl>;
- show sequence <seq>;
+ show consumer [ <cname | *> [on <qname>] ];
register consumer <consumer> [on <qname> | at <tick_id> | copy <consumer> ]* ;
unregister consumer <consumer | *> [from <qname>];
-
register subconsumer <subconsumer> for <consumer> [on <qname>];
unregister subconsumer <subconsumer | *> for <consumer> [from <qname>] [close [batch]];
- show consumer [ <cname | *> [on <qname>] ];
+ show node [ <node | *> [on <qname>] ];
+ show table <tbl>;
+ show sequence <seq>;
Following commands expect default queue:
@@ -79,8 +79,6 @@ show cascade;
"""
-__version__ = '0.1'
-
cmdline_usage = '''\
Usage: qadmin [switches]
@@ -106,6 +104,8 @@ import pkgloader
pkgloader.require('skytools', '3.0')
import skytools
+__version__ = skytools.__version__
+
script = None
IGNORE_HOSTS = {
@@ -446,6 +446,7 @@ w_show = List(
Word('node', w_show_node),
Word('table', w_show_table),
Word('sequence', w_show_seq),
+ Word('version', w_done),
name = "cmd2")
w_install = List(
@@ -635,6 +636,9 @@ class AdminConsole:
cur_queue = None
cur_database = None
+ server_version = None
+ pgq_version = None
+
cmd_file = None
cmd_str = None
@@ -853,7 +857,7 @@ class AdminConsole:
self.initial_connstr = " ".join(cstr_list)
- def db_connect(self, connstr):
+ def db_connect(self, connstr, quiet=False):
db = skytools.connect_database(connstr)
db.set_isolation_level(0) # autocommit
@@ -861,17 +865,20 @@ class AdminConsole:
curs = db.cursor()
curs.execute(q)
res = curs.fetchone()
- print 'Server version', res[1]
self.cur_database = res[0]
+ self.server_version = res[1]
+ q = "select pgq.version()"
+ try:
+ curs.execute(q)
+ res = curs.fetchone()
+ self.pgq_version = res[0]
+ except psycopg2.ProgrammingError:
+ self.pgq_version = "<none>"
+ if not quiet:
+ print "qadmin (%s, server %s, pgq %s)" % (__version__, self.server_version, self.pgq_version)
+ #print "Connected to %r" % connstr
return db
- #print res
- #print dir(self.db)
- #print dir(self.db.cursor())
- #print self.db.status
- #print "connected to", repr(self.initial_connstr)
-
-
def run(self, argv):
self.parse_cmdline(argv)
@@ -888,7 +895,7 @@ class AdminConsole:
cmd_str = open(self.cmd_file, "r").read()
try:
- self.db = self.db_connect(self.initial_connstr)
+ self.db = self.db_connect(self.initial_connstr, quiet=True)
except psycopg2.Error, d:
print str(d).strip()
sys.exit(1)
@@ -911,6 +918,7 @@ class AdminConsole:
except IOError:
pass
+ print "Welcome to qadmin %s (server %s), the PgQ interactive terminal." % (__version__, self.server_version)
print "Use 'show help;' to see available commands."
while 1:
try:
@@ -1109,6 +1117,11 @@ class AdminConsole:
print "CONNECT"
+ def cmd_show_version (self, params):
+ print "qadmin version %s" % __version__
+ print "server version %s" % self.server_version
+ print "pgq version %s" % self.pgq_version
+
def cmd_install(self, params):
pgq_objs = [
skytools.DBLanguage("plpgsql"),
@@ -1162,7 +1175,7 @@ class AdminConsole:
q = pfx + " from pgq.get_queue_info(%s)"
curs.execute(q, [queue])
- display_result(curs, 'Queue: %s' % queue)
+ display_result(curs, 'Queue "%s":' % queue)
def cmd_show_consumer(self, params):
"""Show consumer status"""
@@ -1176,7 +1189,7 @@ class AdminConsole:
q = "select * from pgq.get_consumer_info(%s, %s)"
curs.execute(q, [q_queue, q_consumer])
- display_result(curs, 'Consumer "%s" on queue "%s"' % (consumer, queue))
+ display_result(curs, 'Consumer "%s" on queue "%s":' % (consumer, queue))
def cmd_show_node(self, params):
"""Show node information."""
@@ -1198,7 +1211,7 @@ class AdminConsole:
order by 1,2"""
curs.execute(q, [q_node, q_queue])
- display_result(curs, 'Node "%s" on queue "%s"' % (node, queue))
+ display_result(curs, 'Node "%s" on queue "%s":' % (node, queue))
def cmd_show_batch(self, params):
batch_id = params.get('batch_id')
@@ -1223,7 +1236,7 @@ class AdminConsole:
q = "select * from pgq.get_batch_events(%s)"
curs.execute(q, [batch_id])
- display_result(curs, 'Batch events')
+ display_result(curs, 'Batch events:')
def cmd_register_consumer(self, params):
queue = params.get("queue", self.cur_queue)
@@ -1389,7 +1402,7 @@ class AdminConsole:
q = """select * from londiste.local_show_missing(%s)"""
curs.execute(q, [queue])
- display_result(curs, 'Missing objects queue "%s"' % (queue))
+ display_result(curs, 'Missing objects on queue "%s":' % (queue))
def cmd_londiste_tables(self, params):
"""Show local tables."""
@@ -1400,7 +1413,7 @@ class AdminConsole:
q = """select * from londiste.get_table_list(%s) where local"""
curs.execute(q, [queue])
- display_result(curs, 'Local tables on queue "%s"' % (queue))
+ display_result(curs, 'Local tables on queue "%s":' % (queue))
def cmd_londiste_seqs(self, params):
"""Show local seqs."""
@@ -1411,7 +1424,7 @@ class AdminConsole:
q = """select * from londiste.get_seq_list(%s) where local"""
curs.execute(q, [queue])
- display_result(curs, 'Sequences on queue "%s"' % (queue))
+ display_result(curs, 'Sequences on queue "%s":' % (queue))
def cmd_londiste_add_table(self, params):
"""Add table."""
@@ -1509,4 +1522,3 @@ def main():
if __name__ == '__main__':
main()
-