Commit c4d44672 authored by Marco Mariani's avatar Marco Mariani

proxy show: use logger

parent 123c6ca6
...@@ -71,7 +71,7 @@ def coalesce(*seq): ...@@ -71,7 +71,7 @@ def coalesce(*seq):
return el return el
def print_table(qry, tablename, skip=None): def log_table(logger, qry, tablename, skip=None):
if skip is None: if skip is None:
skip = set() skip = set()
...@@ -88,19 +88,19 @@ def print_table(qry, tablename, skip=None): ...@@ -88,19 +88,19 @@ def print_table(qry, tablename, skip=None):
pt.add_row(row) pt.add_row(row)
if rows: if rows:
print 'table %s:' % tablename,
if skip: if skip:
print 'skipping %s' % ', '.join(skip) logger.info('table %s: skipping %s', tablename, ', '.join(skip))
else: else:
print logger.info('table %s', tablename)
else: else:
print 'table %s: empty' % tablename logger.info('table %s: empty', tablename)
return return
print pt.get_string(border=True, padding_width=0, vrules=prettytable.NONE) for line in pt.get_string(border=True, padding_width=0, vrules=prettytable.NONE).split('\n'):
logger.info(line)
def print_params(conn): def log_params(logger, conn):
cur = conn.cursor() cur = conn.cursor()
qry = cur.execute("SELECT reference, partition_reference, software_type, connection_xml FROM %s" % tbl_partition) qry = cur.execute("SELECT reference, partition_reference, software_type, connection_xml FROM %s" % tbl_partition)
...@@ -109,44 +109,44 @@ def print_params(conn): ...@@ -109,44 +109,44 @@ def print_params(conn):
continue continue
xml = str(row['connection_xml']) xml = str(row['connection_xml'])
print '%s: %s (type %s)' % (row['reference'], row['partition_reference'], row['software_type']) logger.info('%s: %s (type %s)', row['reference'], row['partition_reference'], row['software_type'])
instance = lxml.etree.fromstring(xml) instance = lxml.etree.fromstring(xml)
for parameter in list(instance): for parameter in list(instance):
name = parameter.get('id') name = parameter.get('id')
text = parameter.text text = parameter.text
if text and name in ('ssh-key', 'ssh-public-key'): if text and name in ('ssh-key', 'ssh-public-key'):
text = text[:20] + '...' + text[-20:] text = text[:20] + '...' + text[-20:]
print ' %s = %s' % (name, text) logger.info(' %s = %s', name, text)
def print_computer_table(conn): def log_computer_table(logger, conn):
tbl_computer = 'computer' + DB_VERSION tbl_computer = 'computer' + DB_VERSION
cur = conn.cursor() cur = conn.cursor()
qry = cur.execute("SELECT * FROM %s" % tbl_computer) qry = cur.execute("SELECT * FROM %s" % tbl_computer)
print_table(qry, tbl_computer) log_table(logger, qry, tbl_computer)
def print_software_table(conn): def log_software_table(logger, conn):
tbl_software = 'software' + DB_VERSION tbl_software = 'software' + DB_VERSION
cur = conn.cursor() cur = conn.cursor()
qry = cur.execute("SELECT *, md5(url) as md5 FROM %s" % tbl_software) qry = cur.execute("SELECT *, md5(url) as md5 FROM %s" % tbl_software)
print_table(qry, tbl_software) log_table(logger, qry, tbl_software)
def print_partition_table(conn): def log_partition_table(logger, conn):
cur = conn.cursor() cur = conn.cursor()
qry = cur.execute("SELECT * FROM %s WHERE slap_state<>'free'" % tbl_partition) qry = cur.execute("SELECT * FROM %s WHERE slap_state<>'free'" % tbl_partition)
print_table(qry, tbl_partition, skip=['xml', 'connection_xml', 'slave_instance_list']) log_table(logger, qry, tbl_partition, skip=['xml', 'connection_xml', 'slave_instance_list'])
def print_slave_table(conn): def log_slave_table(logger, conn):
tbl_slave = 'slave' + DB_VERSION tbl_slave = 'slave' + DB_VERSION
cur = conn.cursor() cur = conn.cursor()
qry = cur.execute("SELECT * FROM %s" % tbl_slave) qry = cur.execute("SELECT * FROM %s" % tbl_slave)
print_table(qry, tbl_slave, skip=['connection_xml']) log_table(logger, qry, tbl_slave, skip=['connection_xml'])
def print_network(conn): def log_network(logger, conn):
tbl_partition_network = 'partition_network' + DB_VERSION tbl_partition_network = 'partition_network' + DB_VERSION
cur = conn.cursor() cur = conn.cursor()
addr = collections.defaultdict(list) addr = collections.defaultdict(list)
...@@ -162,39 +162,31 @@ def print_network(conn): ...@@ -162,39 +162,31 @@ def print_network(conn):
for partition_reference in sorted(addr.keys()): for partition_reference in sorted(addr.keys()):
addresses = addr[partition_reference] addresses = addr[partition_reference]
print '%s: %s' % (partition_reference, ', '.join(addresses)) logger.info('%s: %s', partition_reference, ', '.join(addresses))
def do_show(conf): def do_show(conf):
conf.logger.debug('Using database: %s', conf.database_uri)
conn = sqlite3.connect(conf.database_uri) conn = sqlite3.connect(conf.database_uri)
conn.row_factory = sqlite3.Row conn.row_factory = sqlite3.Row
conn.create_function('md5', 1, lambda s: hashlib.md5(s).hexdigest()) conn.create_function('md5', 1, lambda s: hashlib.md5(s).hexdigest())
print_all = not any([ call_table = [
conf.computers, (conf.computers, log_computer_table),
conf.software, (conf.software, log_software_table),
conf.partitions, (conf.partitions, log_partition_table),
conf.slaves, (conf.slaves, log_slave_table),
conf.params, (conf.params, log_params),
conf.network, (conf.network, log_network)
]) ]
if print_all or conf.computers: if not any(flag for flag, func in call_table):
print_computer_table(conn) to_call = [func for flag, func in call_table]
print else:
if print_all or conf.software: to_call = [func for flag, func in call_table if flag]
print_software_table(conn)
print for idx, func in enumerate(to_call):
if print_all or conf.partitions: func(conf.logger, conn)
print_partition_table(conn) if idx < len(to_call) - 1:
print conf.logger.info(' ')
if print_all or conf.slaves:
print_slave_table(conn)
print
if print_all or conf.params:
print_params(conn)
print
if print_all or conf.network:
print_network(conn)
print
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment