Updated to latest
diff --git a/socketserver.py b/socketserver.py
index bf72fd7..238dd69 100644
--- a/socketserver.py
+++ b/socketserver.py
@@ -2,47 +2,59 @@
import sqlite3
import logging
-logging.basicConfig(level=logging.DEBUG)
-log = logging.getLogger(__name__)
-conn=sqlite3.connect('pdu.db', check_same_thread = False)
-c=conn.cursor()
-class ListenerServer():
- HOST='0.0.0.0'
- PORT=16421
+class DBHandler(object):
+ db_file = "pdu.db"
def __init__(self):
- ### read loglevel here
- self.server = TCPServer((self.HOST, self.PORT), TCPRequestHandler)
- log.info("listening on %s:%s" % (self.HOST, self.PORT))
+ logging.debug("Creating new DBHandler: %s" % self.db_file)
+ self.conn = sqlite3.connect(self.db_file, check_same_thread = False)
+ self.cursor = self.conn.cursor()
+
+ def do_sql(self, sql):
+ logging.debug("executing sql: %s" % sql)
+ self.cursor.execute(sql)
+ self.conn.commit()
+
+ def close(self):
+ self.cursor.close()
+ self.conn.close()
+
+
+class ListenerServer(object):
+# conn = sqlite3.connect("/var/lib/lava-pdu/pdu.db", check_same_thread = False)
+# cursor = conn.cursor()
+ db = DBHandler()
+
+ def __init__(self, config):
+ self.server = TCPServer((config["hostname"], config["port"]), TCPRequestHandler)
+ logging.info("listening on %s:%s" % (config["hostname"], config["port"]))
self.create_db()
def create_db(self):
sql = "create table if not exists pdu_queue (id integer primary key, hostname text, port int, request text)"
- log.debug("Creating pdu_queue table: %s" % sql)
- c.execute(sql)
- conn.commit()
+ self.db.do_sql(sql)
def start(self):
- print("Starting the ListenerServer")
+ logging.info("Starting the ListenerServer")
self.server.serve_forever()
+
class TCPRequestHandler(SocketServer.BaseRequestHandler):
- "One instance per connection. Override handle(self) to customize action."
+ #"One instance per connection. Override handle(self) to customize action."
def insert_request(self, data):
array = data.split(" ")
hostname = array[0]
port = int(array[1])
request = array[2]
+ db = DBHandler()
sql = "insert into pdu_queue values (NULL,'%s',%i,'%s')" % (hostname,port,request)
- log.debug("executing sql: %s" % sql)
- c.execute(sql)
- conn.commit()
+ db.do_sql(sql)
+ db.close()
def handle(self):
data = self.request.recv(4096).strip()
- #write to sql db here
- log.debug("got request: %s" % data)
+ logging.debug("got request: %s" % data)
self.insert_request(data)
self.request.sendall("ack\n")
self.request.close()
@@ -53,5 +65,9 @@
pass
if __name__ == "__main__":
- ss = ListenerServer()
+ logging.basicConfig(level=logging.DEBUG)
+ logging.debug("Executing from __main__")
+ starter = {"hostname": "0.0.0.0",
+ "port":16421}
+ ss = ListenerServer(starter)
ss.start()
\ No newline at end of file