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 '&nbsp&nbsp&nbsp'
 	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: