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