If machines have a group defined, show them as a group on the front page
If no group, just display them as an individual machine.
Signed-off-by: Martin J. Bligh <mbligh@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@731 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/tko/machine_kernel.cgi b/tko/machine_kernel.cgi
index 436c0b4..f62d40e 100755
--- a/tko/machine_kernel.cgi
+++ b/tko/machine_kernel.cgi
@@ -33,14 +33,17 @@
return '<table>%s</table>' % '\n'.join(rows)
-def kernel_machine_box(kernel, machine):
+def kernel_machines_box(kernel, machines):
status = None
status_word = ''
- tests = frontend.test.select(db, { 'kernel_idx' : kernel.idx ,
- 'machine_idx' : machine.idx })
+ tests = []
+ for machine in machines:
+ where = { 'kernel_idx':kernel.idx , 'machine_idx':machine.idx }
+ tests += frontend.test.select(db, where)
status_count = {}
for t in tests:
+ print t
if status_count.has_key(t.status_num):
status_count[t.status_num] +=1
else:
@@ -50,8 +53,9 @@
status = t.status_num
status_word = db.status_word[status]
+ machine_idxs = ['%d' % machine.idx for machine in machines]
link = 'machine_kernel_test.cgi?machine=%s&kernel=%s' % \
- (machine.idx, kernel.idx)
+ (','.join(machine_idxs), kernel.idx)
if status_word:
html = '<a href="%s">%s</a>' % (link, status_html(status_count))
else:
@@ -64,7 +68,19 @@
def print_machines_vs_all_kernels(machines):
- headers = ['Version'] + [machine.hostname for machine in machines]
+ groups = {}
+ for machine in machines:
+ if machine.group:
+ groupname = machine.group
+ else:
+ groupname = machine.hostname
+ if groups.has_key(groupname):
+ groups[groupname].append(machine)
+ else:
+ groups[groupname] = [machine]
+ group_list = sorted(groups.keys())
+
+ headers = ['Version'] + group_list
header_row = [ display.box(x, header=True) for x in headers ]
kernels = frontend.kernel.select(db)
@@ -73,8 +89,9 @@
matrix = [header_row]
for kernel in kernels:
row = [display.box(kernel.printable)]
- for machine in machines:
- row.append(kernel_machine_box(kernel, machine))
+ for group in group_list:
+ machines = groups[group]
+ row.append(kernel_machines_box(kernel, machines))
matrix.append(row)
matrix.append(header_row)
diff --git a/tko/machine_kernel_test.cgi b/tko/machine_kernel_test.cgi
index c11bc71..9476ab0 100755
--- a/tko/machine_kernel_test.cgi
+++ b/tko/machine_kernel_test.cgi
@@ -32,6 +32,8 @@
for machine in machines:
where = { 'kernel_idx':kernel.idx , 'machine_idx':machine.idx }
tests = frontend.test.select(db, where)
+ if not tests:
+ continue
test_dict = {}
for test in tests:
all_tests.append(test.testname)
@@ -49,10 +51,10 @@
matrix = [header_row]
for machine in machines:
+ if not results.has_key(machine.idx):
+ continue
row = [display.box(machine.hostname)]
for testname in test_list:
- if not results.has_key(machine.idx):
- continue
if not results[machine.idx].has_key(testname):
continue
test = results[machine.idx][testname]