aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Hart <matthew.hart@linaro.org>2015-08-06 14:17:18 +0100
committerMatt Hart <matthew.hart@linaro.org>2015-08-06 14:20:59 +0100
commit07f56a0c99e44b5f3b08b6dfcf46d92fc80d61e7 (patch)
tree9f24dcdd728cb3611e7e9949af237753e53842ef
parentd4a09982030b1b3941744c5c18ea296041568505 (diff)
Add --purge option to lavapdu-listen
The --purge option will clear the request queue and exit Change-Id: Iace0b13abf38ef7529ec2e7c4cc0e0147212af4f
-rwxr-xr-xlavapdu-listen3
-rw-r--r--lavapdu/dbhandler.py5
-rw-r--r--lavapdu/socketserver.py6
3 files changed, 14 insertions, 0 deletions
diff --git a/lavapdu-listen b/lavapdu-listen
index be887a0..ec820ba 100755
--- a/lavapdu-listen
+++ b/lavapdu-listen
@@ -47,6 +47,7 @@ if __name__ == '__main__':
type="string", help="log file [%s]" % logfile)
parser.add_option("--loglevel", dest="loglevel", action="store",
type="string", help="logging level [INFO]")
+ parser.add_option("--purge", dest="purge", action="store_true")
(options, args) = parser.parse_args()
if options.logfile:
if os.path.exists(os.path.dirname(options.logfile)):
@@ -83,6 +84,8 @@ if __name__ == '__main__':
files_preserve=[watched_file_handler.stream],
stderr=watched_file_handler.stream,
stdout=watched_file_handler.stream)
+ if options.purge:
+ settings["purge"] = True
with context:
logging.info("Running LAVA PDU Listener %s %s %d."
% (logfile,
diff --git a/lavapdu/dbhandler.py b/lavapdu/dbhandler.py
index 5526e1b..cc9e783 100644
--- a/lavapdu/dbhandler.py
+++ b/lavapdu/dbhandler.py
@@ -71,6 +71,11 @@ class DBHandler(object):
def get_res(self, sql):
return self.cursor.execute(sql)
+ def purge(self):
+ log.debug("Purging all jobs from database")
+ self.do_sql("delete from pdu_queue")
+ self.close()
+
def get_next_job(self, single_pdu=False):
now = int(time.time())
extra_sql = ""
diff --git a/lavapdu/socketserver.py b/lavapdu/socketserver.py
index 2d93367..b5c5668 100644
--- a/lavapdu/socketserver.py
+++ b/lavapdu/socketserver.py
@@ -22,6 +22,8 @@ import SocketServer
import logging
import socket
import time
+import sys
+import os
from lavapdu.dbhandler import DBHandler
from lavapdu.shared import drivername_from_hostname
log = logging.getLogger(__name__)
@@ -35,6 +37,9 @@ class ListenerServer(object):
listen_host = settings["hostname"]
listen_port = settings["port"]
log.debug("ListenerServer __init__")
+ if "purge" in config:
+ self.server.dbh.purge()
+ sys.exit(os.EX_OK)
log.info("listening on %s:%s", listen_host, listen_port)
self.server = TCPServer((listen_host, listen_port), TCPRequestHandler)
@@ -42,6 +47,7 @@ class ListenerServer(object):
self.server.config = config
self.server.dbh = DBHandler(settings)
+
def start(self):
log.info("Starting the ListenerServer")
self.server.serve_forever()