Make better use of the db
git-svn-id: http://test.kernel.org/svn/autotest/trunk@314 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/tko/create_db b/tko/create_db
index cd5d74f..d99ef20 100644
--- a/tko/create_db
+++ b/tko/create_db
@@ -8,6 +8,7 @@
job VARCHAR(15) PRIMARY KEY,
version VARCHAR(100),
status INTEGER,
+reason VARCHAR(100),
machine VARCHAR(20),
kernel VARCHAR(30)
);
diff --git a/tko/db.py b/tko/db.py
index d349ed4..e06fc1f 100644
--- a/tko/db.py
+++ b/tko/db.py
@@ -7,6 +7,22 @@
def select(self, cmd):
+ print 'select ' + cmd
self.cur.execute('select ' + cmd)
return self.cur.fetchall()
+
+ def insert_job(self, tag, job):
+ command = 'insert into jobs ' + \
+ '(job, version, status, reason, machine, kernel) ' +\
+ 'values (%s, %s, %s, %s, %s, %s) '
+ values = (tag, job.kernel, job.status_num, job.reason, \
+ job.machine, job.kernel)
+ self.cur.execute(command, values)
+ self.con.commit();
+
+
+ def find_job(self, tag):
+ command = 'select * from jobs where job = %s'
+ self.cur.execute(command, tag)
+ return self.cur.fetchall()
diff --git a/tko/parse b/tko/parse
index 21ca728..5f70fda 100755
--- a/tko/parse
+++ b/tko/parse
@@ -1,5 +1,5 @@
#!/usr/bin/python2.4
-import os, re, parse
+import os, re, parse, db
topdir = "/home/mirror/tko/abat"
index = "external.list"
@@ -9,10 +9,14 @@
jobs_list = open(os.path.join(topdir, index), 'r').readlines()
jobs_list = [j.strip() for j in jobs_list]
+db = db.db()
+
for j in jobs_list:
+ tag = 'abat' + j
+ if db.find_job(tag):
+ continue
job = parse.parse(os.path.join(topdir, j), 'regression')
if not job.kernel:
continue
- jobs['abat' + j] = job
- # print '%s %s %s %s' % (j, job.kernel, job.status, job.reason)
- print '%s %s' % (job.status, job.reason)
+ print '%s %s %s %s' % (j, job.kernel, job.status, job.reason)
+ db.insert_job(tag, job)
diff --git a/tko/parse.py b/tko/parse.py
index 8dea9f5..ff2cf8c 100755
--- a/tko/parse.py
+++ b/tko/parse.py
@@ -33,8 +33,6 @@
return short
-
-
class parse:
def __init__(self, topdir, type):
self.topdir = topdir
@@ -42,6 +40,7 @@
self.control = os.path.join(topdir, "autobench.dat")
self.set_status('NOSTATUS')
self.reason = ''
+ self.machine = ''
self.variables = {}
self.kernel = None
@@ -65,6 +64,8 @@
self.derive_patches()
self.derive_kernel()
+ if 'machine_name' in variables:
+ self.machine = variables['machine_name']
def derive_build(self, raw_build):
diff --git a/tko/retrieve b/tko/retrieve
index 74d8880..1a7f4f5 100755
--- a/tko/retrieve
+++ b/tko/retrieve
@@ -1,5 +1,11 @@
#!/usr/bin/python2.4
-import db
+import sys, db
+
+try:
+ arg = sys.argv[1]
+except:
+ arg = ''
db = db.db()
-print db.select('* from jobs')
+for record in db.select('* from jobs ' + arg):
+ print record