update tko frontend code to link from 2nd level and sort tests.
git-svn-id: http://test.kernel.org/svn/autotest/trunk@670 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/tko/create_db b/tko/create_db
index b62a5f9..d789ea6 100644
--- a/tko/create_db
+++ b/tko/create_db
@@ -11,7 +11,7 @@
-- main jobs table
CREATE TABLE jobs (
job_idx INTEGER PRIMARY KEY, -- index number
-tag VARCHAR(30), -- job key
+tag VARCHAR(100), -- job key
machine VARCHAR(80) -- machine name
);
diff --git a/tko/display.py b/tko/display.py
index 7339992..2bcaefd 100755
--- a/tko/display.py
+++ b/tko/display.py
@@ -1,4 +1,6 @@
import os, re, parse, sys, db, frontend
+sys.path.insert(0, '/home/mbligh/autotest/client/bin')
+import kernel_versions
db = db.db() # db.db(debug=True)
@@ -16,11 +18,16 @@
# print_colored_box(status_word, '\n'.join(lines))
link = 'machine_kernel_test.cgi?machine=%s&kernel=%s' % \
(machine, kernel.idx)
- html = '<a href="%s">%s</a>' % (link, status_word)
+ if status_word:
+ html = '<a href="%s">%s</a>' % (link, status_word)
+ else:
+ html = None
print_colored_box(status_word, html)
def print_colored_box(status, html):
+ if not html:
+ html = ' '
print "<td bgcolor=%s>" % frontend.status_colour[status]
print html
print "</td>"
@@ -35,11 +42,17 @@
print ""
+def kernel_encode(kernel):
+ return kernel_versions.version_encode(kernel.printable)
+
+
def print_machine_vs_kernel(machines):
print '<table cellpadding=5 border=1 class="boldtable">'
print_machines_row(machines)
- for kernel in frontend.kernel.select(db):
+ kernels = frontend.kernel.select(db)
+ kernels.sort(key = kernel_encode, reverse = True)
+ for kernel in kernels:
print "<tr>"
print "<td>%s</td>" % kernel.printable
for machine in machines:
@@ -51,17 +64,23 @@
print "</table>"
-def print_kernel_machines_vs_test(machines, kernel_idx):
+def print_kernel_machines_vs_test(machines, kernel_idx, html_root):
# first we have to get a list of all run tests across all machines
all_tests = {}
+ all_kernel = {}
results = {}
for machine in machines:
where = { 'kernel_idx' : kernel_idx , 'machine' : machine }
tests = frontend.test.select(db, where)
- results[machine] = tests
+ test_dict = {}
for test in tests:
- all_tests[test.subdir] = True
- test_list = sorted(all_tests.keys())
+ if test.subdir.startswith('kernel.'):
+ all_kernel[test.subdir] = True
+ else:
+ all_tests[test.subdir] = True
+ test_dict[test.subdir] = test
+ results[machine] = test_dict
+ test_list = sorted(all_kernel.keys()) + sorted(all_tests.keys())
kernel = frontend.kernel.select(db, {'kernel_idx' : kernel_idx })[0]
print '<h1>%s</h1>' % kernel.printable
@@ -77,8 +96,10 @@
for machine in machines:
print "\n<tr>"
print "<td>%s</td>" % machine
- tests = results[machine]
- for test in tests:
- print_colored_box(test.status_word, test.status_word)
+ for testname in test_list:
+ test = results[machine][testname]
+ html = '<a href="%s">%s</a>' % \
+ (test.url, test.status_word)
+ print_colored_box(test.status_word, html)
print "</tr>"
print '</table>'
diff --git a/tko/frontend.py b/tko/frontend.py
index 6130224..7996093 100755
--- a/tko/frontend.py
+++ b/tko/frontend.py
@@ -18,6 +18,8 @@
'' : '#ffffff', # white
}
+html_root = 'http://test.kernel.org/google/'
+
class kernel:
@classmethod
def select(klass, db, where = {}):
@@ -51,7 +53,7 @@
def __init__(self, db, test_idx, job_idx, testname, subdir, kernel_idx, status_num, reason, machine):
self.idx = test_idx
self.job = None
- # self.job = job.select(db, {'job_idx' : job_idx})
+ self.job = job(db, job_idx)
# self.machine = self.job.machine
self.test = testname
self.subdir = subdir
@@ -60,8 +62,17 @@
self.status_num = status_num
self.status_word = db.status_word[status_num]
self.reason = reason
+ self.url = html_root + self.job.tag + '/' + self.subdir
-
+
+class job:
+ def __init__(self, db, job_idx):
+ where = {'job_idx' : job_idx}
+ rows = db.select('tag, machine', 'jobs', where)
+ if not rows:
+ return None
+ (self.tag, self.machine) = rows[0]
+
# class patch:
# def __init__(self):
diff --git a/tko/machine_kernel_test.cgi b/tko/machine_kernel_test.cgi
index bc8b144..cff75bc 100755
--- a/tko/machine_kernel_test.cgi
+++ b/tko/machine_kernel_test.cgi
@@ -3,6 +3,7 @@
import cgi, cgitb, os, sys
tko = '/home/mbligh/autotest/tko'
+html_root = 'http://test.kernel.org/google/'
cgitb.enable()
@@ -20,5 +21,5 @@
machine = form["machine"].value
kernel_version = form["kernel"].value
-print_kernel_machines_vs_test([machine], kernel_version)
+print_kernel_machines_vs_test([machine], kernel_version, html_root)