Moved all database stuff inside DBHandler, and some pylint cleanups
Change-Id: I593dad98cb862f886bd9a1fb758630aa1831d9d3
diff --git a/MANIFEST.in b/MANIFEST.in
index 9f951a3..a59b72f 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,4 @@
-include etc/lavapdu.conf
+include etc/lavapdu/lavapdu.conf
include etc/lavapdu-runner.init
include etc/lavapdu-listen.init
-include etc/lavapdulogrotate
\ No newline at end of file
+include etc/lavapdulogrotate
diff --git a/lavapdu/dbhandler.py b/lavapdu/dbhandler.py
index 09c7058..1154fb7 100644
--- a/lavapdu/dbhandler.py
+++ b/lavapdu/dbhandler.py
@@ -42,6 +42,22 @@
self.conn.commit()
return row
+ def create_db(self):
+ logging.info("Creating db table if it doesn't exist")
+ sql = "create table if not exists pdu_queue (id serial, hostname " \
+ "text, port int, request text, exectime int)"
+ self.cursor.execute(sql)
+ self.conn.commit()
+ sql = "select column_name from information_schema.columns where " \
+ "table_name='pdu_queue' and column_name='exectime'"
+ self.cursor.execute(sql)
+ res = self.cursor.fetchone()
+ if not res:
+ logging.info("Old db schema discovered, upgrading")
+ sql = "alter table pdu_queue add column exectime int default 1"
+ self.cursor.execute(sql)
+ self.conn.commit()
+
def delete_row(self, row_id):
logging.debug("deleting row %i" % row_id)
self.do_sql("delete from pdu_queue where id=%i" % row_id)
diff --git a/lavapdu/socketserver.py b/lavapdu/socketserver.py
index 4f103bf..c1b8c27 100644
--- a/lavapdu/socketserver.py
+++ b/lavapdu/socketserver.py
@@ -23,7 +23,7 @@
import socket
import time
import json
-from dbhandler import DBHandler
+from lavapdu.dbhandler import DBHandler
class ListenerServer(object):
@@ -34,25 +34,14 @@
logging.getLogger().name = "ListenerServer"
logging.getLogger().setLevel(settings["logging_level"])
logging.debug("ListenerServer __init__")
- logging.info("listening on %s:%s" % (listen_host, listen_port))
+ logging.info("listening on %s:%s", listen_host, listen_port)
self.server = TCPServer((listen_host, listen_port), TCPRequestHandler)
self.server.settings = settings
- self.db = DBHandler(settings)
- self.create_db()
- self.db.close()
- del(self.db)
-
- def create_db(self):
- sql = "create table if not exists pdu_queue (id serial, hostname text, port int, request text, exectime int)"
- self.db.do_sql(sql)
- sql = "select column_name from information_schema.columns where table_name='pdu_queue'" \
- "and column_name='exectime'"
- res = self.db.do_sql_with_fetch(sql)
- if not res:
- logging.info("Old db schema discovered, upgrading")
- sql = "alter table pdu_queue add column exectime int default 1"
- self.db.do_sql(sql)
+ dbh = DBHandler(settings)
+ dbh.create_db()
+ dbh.close()
+ del dbh
def start(self):
logging.info("Starting the ListenerServer")
@@ -77,27 +66,27 @@
hostname = array[0]
port = int(array[1])
request = array[2]
- if not (request in ["reboot","on","off"]):
+ if not (request in ["reboot", "on", "off"]):
logging.info("Unknown request: %s" % request)
raise Exception("Unknown request: %s" % request)
if request == "reboot":
logging.debug("reboot requested, submitting off/on")
- self.queue_request(hostname,port,"off",now)
- self.queue_request(hostname,port,"on",now+delay)
+ self.queue_request(hostname, port, "off", now)
+ self.queue_request(hostname, port, "on", now+delay)
else:
if custom_delay:
logging.debug("using delay as requested")
- self.queue_request(hostname,port,request,now+delay)
+ self.queue_request(hostname, port, request, now+delay)
else:
- self.queue_request(hostname,port,request,now)
+ self.queue_request(hostname, port, request, now)
def queue_request(self, hostname, port, request, exectime):
db = DBHandler(self.server.settings)
sql = "insert into pdu_queue (hostname,port,request,exectime) " \
- "values ('%s',%i,'%s',%i)" % (hostname,port,request,exectime)
+ "values ('%s',%i,'%s',%i)" % (hostname, port, request, exectime)
db.do_sql(sql)
db.close()
- del(db)
+ del db
def handle(self):
@@ -111,7 +100,8 @@
except socket.herror as e:
#logging.debug("Unable to resolve: %s error: %s" % (ip,e))
request_host = ip
- logging.info("Received a request from %s: '%s'" % (request_host, data))
+ logging.info("Received a request from %s: '%s'"
+ % (request_host, data))
self.insert_request(data)
self.request.sendall("ack\n")
except Exception as e:
@@ -129,7 +119,6 @@
logging.basicConfig(level=logging.DEBUG)
logging.getLogger().setLevel(logging.DEBUG)
logging.debug("Executing from __main__")
- settings = {}
filename = "/etc/lavapdu/lavapdu.conf"
print("Reading settings from %s" % filename)
with open(filename) as stream:
diff --git a/setup.py b/setup.py
index a74ae5f..d0d6cc2 100644
--- a/setup.py
+++ b/setup.py
@@ -4,14 +4,14 @@
#
# Author: Matthew Hart <matthew.hart@linaro.org>
#
-# This file is part of LAVA-PDU.
+# This file is part of PDUDAEMON.
#
-# LAVA Coordinator is free software; you can redistribute it and/or modify
+# PDUDAEMON is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
-# LAVA Coordinator is distributed in the hope that it will be useful,
+# PDUDAEMON is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
diff --git a/var/lib/lavapdu/pdu.db b/var/lib/lavapdu/pdu.db
deleted file mode 100644
index 902f2e1..0000000
--- a/var/lib/lavapdu/pdu.db
+++ /dev/null
Binary files differ