blob: c04ff935157f708d0a7e3c5d1fca9d21a05ad1b7 [file] [log] [blame]
mbligh9bb92fe2007-09-12 15:54:23 +00001#!/usr/bin/python
2import os, re, db
3
mbligh8e1ab172007-09-13 17:29:56 +00004# Pulling hierarchy:
5#
6# test pulls in (kernel, job, attributes, iterations)
7# kernel pulls in (patches)
8#
9# Note that job does put pull test - test is the primary object.
mbligh9bb92fe2007-09-12 15:54:23 +000010
11class kernel:
mbligh8e1ab172007-09-13 17:29:56 +000012 @classmethod
13 def select(klass, db, where = {}):
14 fields = ['kernel_idx', 'kernel_hash', 'base', 'printable']
15 kernels = []
16 for row in db.select(','.join(fields), 'kernels', where):
17 kernels.append(klass(db, *row))
18 return kernels
mbligh9bb92fe2007-09-12 15:54:23 +000019
mbligh8e1ab172007-09-13 17:29:56 +000020
21 def __init__(self, db, idx, hash, base, printable):
mbligh9bb92fe2007-09-12 15:54:23 +000022 self.db = db
mbligh8e1ab172007-09-13 17:29:56 +000023 self.idx = idx
mbligh9bb92fe2007-09-12 15:54:23 +000024 self.hash = hash
mbligh8e1ab172007-09-13 17:29:56 +000025 self.base = base
26 self.printable = printable
27 self.patches = [] # THIS SHOULD PULL IN PATCHES!
mbligh9bb92fe2007-09-12 15:54:23 +000028
29
30class test:
mbligh8e1ab172007-09-13 17:29:56 +000031 @classmethod
32 def select(klass, db, where = {}):
33 fields = ['test_idx', 'job_idx', 'test', 'subdir',
34 'kernel_idx', 'status', 'reason', 'machine']
35 tests = []
36 for row in db.select(','.join(fields), 'tests', where):
37 tests.append(klass(db, *row))
38 return tests
39
40
41 def __init__(self, db, test_idx, job_idx, testname, subdir, kernel_idx, status_num, reason, machine):
42 self.idx = test_idx
43 self.job = None
44 # self.job = job.select(db, {'job_idx' : job_idx})
45 # self.machine = self.job.machine
46 self.test = testname
47 self.subdir = subdir
48 self.kernel = None
49 # self.kernel = kernel.select(db, {'kernel_idx' : kernel_idx})
50 self.status_num = status_num
51 self.status_word = db.status_word[status_num]
mbligh9bb92fe2007-09-12 15:54:23 +000052 self.reason = reason
mbligh8e1ab172007-09-13 17:29:56 +000053
54
55
56# class patch:
57# def __init__(self):
58# self.spec = None
59#
60#
61# class iteration:
62# def __init__(self):
63# self.a = None
64#