Add code to deal with machine owners and their display
Signed-off-by: Martin J. Bligh <mbligh@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@1010 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/tko/db.py b/tko/db.py
index 30de8fd..6749ef7 100644
--- a/tko/db.py
+++ b/tko/db.py
@@ -167,7 +167,7 @@
def insert_job(self, tag, job, commit = None):
job.machine_idx = self.lookup_machine(job.machine)
if not job.machine_idx:
- job.machine_idx = self.insert_machine(job.machine,
+ job.machine_idx = self.insert_machine(job,
commit=commit)
self.insert('jobs', {'tag':tag,
'label': job.label,
@@ -208,16 +208,20 @@
self.machine_group[machine] = group
- def insert_machine(self, hostname, group = None, commit = None):
+ def insert_machine(self, job, group = None, commit = None):
+ hostname = job.machine
if self.machine_map and not self.machine_group:
self.read_machine_map()
if not group:
group = self.machine_group.get(hostname, hostname)
-
+ if group == hostname and job.machine_owner:
+ group = job.machine_owner + '/' + hostname
+
self.insert('machines',
{ 'hostname' : hostname ,
- 'machine_group' : group },
+ 'machine_group' : group ,
+ 'owner' : job.machine_owner },
commit=commit)
return self.lookup_machine(hostname)
diff --git a/tko/delete_job_results b/tko/delete_job_results
index ec4c106..4977988 100644
--- a/tko/delete_job_results
+++ b/tko/delete_job_results
@@ -12,12 +12,10 @@
tag = sys.argv[1]
resultsdir = os.path.abspath(os.path.join(thisdir, '../results', tag))
-if not os.path.isdir(resultsdir):
- raise "Results directory %s does not exist" % resultsdir
db = db.db()
if not db.find_job(tag):
raise "Job tag %s does not exist in database" % tag
-shutil.rmtree(resultsdir)
db.delete_job(tag)
+shutil.rmtree(resultsdir)
diff --git a/tko/display.py b/tko/display.py
index 9d85a9d..d37b8ff 100755
--- a/tko/display.py
+++ b/tko/display.py
@@ -114,6 +114,9 @@
if tests.count(test):
results.append(test)
tests.remove(test)
+ if tests.count('boot'):
+ results.append('boot')
+ tests.remove('boot')
return results + sorted(tests)
@@ -126,3 +129,15 @@
print '   '
print '<a href="machine_benchmark.cgi">Performance</a>'
print '</h2><p>'
+
+
+def group_name(group):
+ name = re.sub('_', '<br>', group.name)
+ if re.search('/', name):
+ (owner, machine) = name.split('/', 1)
+ if len(owner) > 3: # capitalize acroymns
+ owner = owner.capitalize()
+ else:
+ owner = owner.upper()
+ name = owner + '<br>' + machine
+ return name
diff --git a/tko/machine_kernel.cgi b/tko/machine_kernel.cgi
index d3da39d..c972860 100755
--- a/tko/machine_kernel.cgi
+++ b/tko/machine_kernel.cgi
@@ -32,7 +32,7 @@
groups = frontend.group.select(db)
- group_names = [re.sub('_', '<br>', g.name) for g in groups]
+ group_names = [display.group_name(g) for g in groups]
headers = ['Version'] + group_names
header_row = [ display.box(x, header=True) for x in headers ]
diff --git a/tko/parse.py b/tko/parse.py
index 178f86e..94b42c8 100755
--- a/tko/parse.py
+++ b/tko/parse.py
@@ -81,6 +81,7 @@
self.user = keyval.get('user', None)
self.label = keyval.get('label', None)
self.machine = keyval.get('hostname', None)
+ self.machine_owner = keyval.get('owner', None)
if not self.machine:
self.get_machine()
@@ -94,13 +95,13 @@
def get_machine(self):
try:
- hostname = os.path.join(dir, "sysinfo/hostname")
+ hostname = os.path.join(self.dir, "sysinfo/hostname")
self.machine = open(hostname, 'r').readline().rstrip()
return
except:
pass
try:
- uname = os.path.join(dir, "sysinfo/uname_-a")
+ uname = os.path.join(self.dir, "sysinfo/uname_-a")
self.machine = open(uname, 'r').readline().split()[1]
return
except: