When adding machines, try to figure out their group from a mapping file

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@763 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/tko/db.py b/tko/db.py
index a696c3a..a4d2bc6 100644
--- a/tko/db.py
+++ b/tko/db.py
@@ -40,7 +40,13 @@
 		for s in status_rows:
 			self.status_idx[s[1]] = s[0]
 			self.status_word[s[0]] = s[1]
-		
+
+		dir = os.path.abspath(os.path.dirname(sys.argv[0]))
+		machine_map = os.path.join(dir, 'machines')
+		if os.path.exists(machine_map):
+			self.machine_map = machine_map
+		self.machine_group = {}
+
 
 	def dprint(self, value):
 		if self.debug:
@@ -148,8 +154,22 @@
 				self.insert('iteration_result', data)
 
 
-	def insert_machine(self, hostname):
-		self.insert('machines', { 'hostname' : hostname })
+	def read_machine_map(self):
+		self.machine_group = {}
+		for line in open(self.machine_map, 'r').readlines():
+			(machine, group) = line.split()
+			self.machine_group[machine] = group
+
+
+	def insert_machine(self, hostname, group = None):
+		if self.machine_map and not self.machine_group:
+			self.read_machine_map()
+
+		if not group:
+			group = self.machine_group.get(hostname, hostname)
+				
+		self.insert('machines', { 'hostname' : hostname ,
+					  'machine_group' : group })
 		return self.lookup_machine(hostname)
 
 
@@ -164,7 +184,7 @@
 
 	def lookup_kernel(self, kernel):
 		rows = self.select('kernel_idx', 'kernels', 
-				{'kernel_hash':kernel.kernel_hash})
+					{'kernel_hash':kernel.kernel_hash})
 		if rows:
 			return rows[0][0]
 		else:
@@ -193,6 +213,7 @@
 					'url':patch.reference, 
 					'hash':patch.hash})
 
+
 	def find_test(self, job_idx, subdir):
 		where = { 'job_idx':job_idx , 'subdir':subdir }
 		rows = self.select('test_idx', 'tests', where)