cas-admin | 29 ++++++++---------------------
lib/cas/db.py | 14 ++++++++++++--
2 files changed, 20 insertions(+), 23 deletions(-)
New commits:
commit 7513467d1fde862f2abe4127d3ee1ff76a0eb6ca
Author: Adam Stokes <adam.stokes(a)gmail.com>
Date: Tue Mar 31 19:14:58 2009 -0400
- starting to implement db methods into cas-admin
diff --git a/cas-admin b/cas-admin
index 7fbc538..e25b778 100755
--- a/cas-admin
+++ b/cas-admin
@@ -37,6 +37,7 @@ KERNELS = config.get("settings","kernels")
RPMFILTER = config.get("settings","rpmFilter")
DEBUGS = config.get("settings","debugs")
DEBUGLEVEL = config.get("settings","debugLevel")
+DATABASE = config.get("settings","database")
# read maintenance options
PURGELIMIT = config.get("maintenance","purgeLimit")
@@ -46,20 +47,11 @@ class CasDatabaseHandler(object):
def __init__(self, logger):
self.casLog = logger
self.util = UtilBase()
- if os.path.isfile(RPMS):
- self.rpmDB = self.util.load(RPMS)
- else:
- self.rpmDB = {}
-
- def rpmExist(self, rpm):
- """ checks existence of rpm in db
- """
- if self.rpmDB.has_key(rpm):
- return True
- return False
+ # setup database connection
+ self.db = CasStorage(DATABASE)
+ self.db.connect()
def run(self):
- rpms = []
# Uses emacs regex -- see `man find`
cmd = ["find", "-L", KERNELS, "-iregex",
RPMFILTER]
pipe = Popen(cmd, stdout=PIPE, stderr=PIPE)
@@ -67,17 +59,12 @@ class CasDatabaseHandler(object):
count = 0
# create list of rpms from `cmd`
for line in pipe.stdout:
- rpms.append(line.strip())
+ self.db.addDebuginfoRPM(line.strip())
self.casLog.status("(found) %-5d kernel(s)" % (count,))
count = count + 1
- # reset count for further informational messaging
- totalRpms = len(rpms)
- count = 0
- """ Build database out in the form of
- RPM - [( DebugKernel, Timestamp),
-' ( DebugKernel2, Timestamp2)]
- """
- for x in rpms:
+ # query database for debuginfo rpms
+ rpms = self.db.getDebuginfoRPM()
+ for id, rpm in rpms:
if not self.rpmExist(x):
self.rpmDB[x] = []
count = count + 1
diff --git a/lib/cas/db.py b/lib/cas/db.py
index 5e9ef7c..fb0b322 100644
--- a/lib/cas/db.py
+++ b/lib/cas/db.py
@@ -22,12 +22,22 @@ class CasStorage(object):
(date text, submitter text, corepath text, debugpath text,
server text)
-create table debuginfo (rpm text)
+create table debuginfo (debug_id integer primary key autoincrement, rpm text)
-create table timestamp (debuginfo integer, debugpath text, timestamp
text)''')
+create table timestamp (timestamp_id integer primary key autoincrement,
+debuginfo integer, debugpath text, timestamp text, debug_id integer)''')
self.conn.commit()
return
+ # DEBUGINFO METHODS
+ def addDebuginfoRPM(self, debuginfo):
+ self.cursor.execute("INSERT into debuginfo('rpm') values(?)",
debuginfo)
+ return
+
+ def getDebuginfoRPM(self):
+ self.cursor.execute("SELECT * FROM debuginfo")
+ return self.cursor
+
def connect(self):
""" execute connection """
try:
Show replies by date