Skip to content
Snippets Groups Projects
Commit d773ce7d authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

Task #8887: log_queries as (cmdline) option

parent 94df7390
No related branches found
No related tags found
No related merge requests found
...@@ -37,10 +37,11 @@ _FETCH_ONE=1 ...@@ -37,10 +37,11 @@ _FETCH_ONE=1
_FETCH_ALL=2 _FETCH_ALL=2
class RADatabase: class RADatabase:
def __init__(self, dbcreds=None): def __init__(self, dbcreds=None, log_queries=False):
self.dbcreds = dbcreds self.dbcreds = dbcreds
self.conn = None self.conn = None
self.cursor = None self.cursor = None
self.log_queries = log_queries
def _connect(self): def _connect(self):
self.conn = None self.conn = None
...@@ -62,8 +63,8 @@ class RADatabase: ...@@ -62,8 +63,8 @@ class RADatabase:
def _executeQuery(self, query, qargs=None, fetch=_FETCH_NONE): def _executeQuery(self, query, qargs=None, fetch=_FETCH_NONE):
'''execute the query and reconnect upon OperationalError''' '''execute the query and reconnect upon OperationalError'''
try: try:
if logger.getEffectiveLevel() == logging.DEBUG: #prevent expensive string manipulation above debug level if self.log_queries:
logger.debug('execute query: %s' % self._queryAsSingleLine(query, qargs)) logger.info('executing query: %s' % self._queryAsSingleLine(query, qargs))
self.cursor.execute(query, qargs) self.cursor.execute(query, qargs)
except (psycopg2.OperationalError, AttributeError) as e: except (psycopg2.OperationalError, AttributeError) as e:
...@@ -892,7 +893,7 @@ class RADatabase: ...@@ -892,7 +893,7 @@ class RADatabase:
if __name__ == '__main__': if __name__ == '__main__':
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
level=logging.DEBUG) level=logging.INFO)
# Check the invocation arguments # Check the invocation arguments
parser = OptionParser("%prog [options]", parser = OptionParser("%prog [options]",
...@@ -903,7 +904,7 @@ if __name__ == '__main__': ...@@ -903,7 +904,7 @@ if __name__ == '__main__':
dbcreds = dbcredentials.parse_options(options) dbcreds = dbcredentials.parse_options(options)
db = RADatabase(dbcreds=dbcreds) db = RADatabase(dbcreds=dbcreds, log_queries=True)
def resultPrint(method): def resultPrint(method):
print '\n-- ' + str(method.__name__) + ' --' print '\n-- ' + str(method.__name__) + ' --'
......
[program:radbservice] [program:radbservice]
command=/bin/bash -c 'source $LOFARROOT/lofarinit.sh;radbservice --busname=lofar.ra.command --servicename=RADBService' command=/bin/bash -c 'source $LOFARROOT/lofarinit.sh;radbservice --busname=lofar.ra.command --servicename=RADBService --log-queries'
user=lofarsys user=lofarsys
stopsignal=INT ; KeyboardInterrupt stopsignal=INT ; KeyboardInterrupt
stopasgroup=true ; bash does not propagate signals stopasgroup=true ; bash does not propagate signals
......
...@@ -35,6 +35,7 @@ class RADBHandler(MessageHandlerInterface): ...@@ -35,6 +35,7 @@ class RADBHandler(MessageHandlerInterface):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super(RADBHandler, self).__init__(**kwargs) super(RADBHandler, self).__init__(**kwargs)
self.dbcreds = kwargs.pop("dbcreds", None) self.dbcreds = kwargs.pop("dbcreds", None)
self.log_queries = kwargs.pop("log_queries", False)
self.service2MethodMap = { self.service2MethodMap = {
'GetResourceClaimStatuses': self._getResourceClaimStatuses, 'GetResourceClaimStatuses': self._getResourceClaimStatuses,
...@@ -69,7 +70,7 @@ class RADBHandler(MessageHandlerInterface): ...@@ -69,7 +70,7 @@ class RADBHandler(MessageHandlerInterface):
'GetUnits': self._getUnits} 'GetUnits': self._getUnits}
def prepare_loop(self): def prepare_loop(self):
self.radb = radb.RADatabase(dbcreds=self.dbcreds) self.radb = radb.RADatabase(dbcreds=self.dbcreds, log_queries=self.log_queries)
def _getTaskStatuses(self): def _getTaskStatuses(self):
return self.radb.getTaskStatuses() return self.radb.getTaskStatuses()
...@@ -253,14 +254,14 @@ class RADBHandler(MessageHandlerInterface): ...@@ -253,14 +254,14 @@ class RADBHandler(MessageHandlerInterface):
def _getUnits(self): def _getUnits(self):
return self.radb.getUnits() return self.radb.getUnits()
def createService(busname=DEFAULT_BUSNAME, servicename=DEFAULT_SERVICENAME, broker=None, dbcreds=None, verbose=False): def createService(busname=DEFAULT_BUSNAME, servicename=DEFAULT_SERVICENAME, broker=None, dbcreds=None, log_queries=False, verbose=False):
return Service(servicename, return Service(servicename,
RADBHandler, RADBHandler,
busname=busname, busname=busname,
broker=broker, broker=broker,
use_service_methods=True, use_service_methods=True,
numthreads=4, numthreads=4,
handler_args={'dbcreds': dbcreds}, handler_args={'dbcreds': dbcreds, 'log_queries': log_queries},
verbose=verbose) verbose=verbose)
def main(): def main():
...@@ -270,6 +271,7 @@ def main(): ...@@ -270,6 +271,7 @@ def main():
parser.add_option('-q', '--broker', dest='broker', type='string', default=None, help='Address of the qpid broker, default: localhost') parser.add_option('-q', '--broker', dest='broker', type='string', default=None, help='Address of the qpid broker, default: localhost')
parser.add_option("-b", "--busname", dest="busname", type="string", default=DEFAULT_BUSNAME, help="Name of the bus exchange on the qpid broker, default: %s" % DEFAULT_BUSNAME) parser.add_option("-b", "--busname", dest="busname", type="string", default=DEFAULT_BUSNAME, help="Name of the bus exchange on the qpid broker, default: %s" % DEFAULT_BUSNAME)
parser.add_option("-s", "--servicename", dest="servicename", type="string", default=DEFAULT_SERVICENAME, help="Name for this service, default: %s" % DEFAULT_SERVICENAME) parser.add_option("-s", "--servicename", dest="servicename", type="string", default=DEFAULT_SERVICENAME, help="Name for this service, default: %s" % DEFAULT_SERVICENAME)
parser.add_option('-Q', '--log-queries', dest='log_queries', action='store_true', help='log all pqsl queries')
parser.add_option('-V', '--verbose', dest='verbose', action='store_true', help='verbose logging') parser.add_option('-V', '--verbose', dest='verbose', action='store_true', help='verbose logging')
parser.add_option_group(dbcredentials.options_group(parser)) parser.add_option_group(dbcredentials.options_group(parser))
parser.set_defaults(dbcredentials="RADB") parser.set_defaults(dbcredentials="RADB")
...@@ -285,6 +287,7 @@ def main(): ...@@ -285,6 +287,7 @@ def main():
servicename=options.servicename, servicename=options.servicename,
broker=options.broker, broker=options.broker,
verbose=options.verbose, verbose=options.verbose,
log_queries=options.log_queries,
dbcreds=dbcreds): dbcreds=dbcreds):
waitForInterrupt() waitForInterrupt()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment