apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 1 | """The harness interface |
| 2 | |
| 3 | The interface between the client and the server when hosted. |
| 4 | """ |
| 5 | |
| 6 | __author__ = """Copyright Andy Whitcroft 2006""" |
| 7 | |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 8 | import os, sys |
| 9 | |
mbligh | 6e83b6f | 2008-06-10 16:26:59 +0000 | [diff] [blame^] | 10 | class harness(object): |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 11 | """The NULL server harness |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 12 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 13 | Properties: |
| 14 | job |
| 15 | The job object for this job |
| 16 | """ |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 17 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 18 | def __init__(self, job): |
| 19 | """ |
| 20 | job |
| 21 | The job object for this job |
| 22 | """ |
| 23 | self.setup(job) |
apw | 4726b09 | 2007-03-12 20:35:05 +0000 | [diff] [blame] | 24 | |
| 25 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 26 | def setup(self, job): |
| 27 | """ |
| 28 | job |
| 29 | The job object for this job |
| 30 | """ |
| 31 | self.job = job |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 32 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 33 | configd = os.path.join(os.environ['AUTODIR'], 'configs') |
| 34 | if os.path.isdir(configd): |
| 35 | (name, dirs, files) = os.walk(configd).next() |
| 36 | job.config_set('kernel.default_config_set', |
mbligh | 8b35285 | 2008-06-07 01:07:08 +0000 | [diff] [blame] | 37 | [ configd + '/' ] + files) |
apw | 66cc4f6 | 2007-03-12 20:37:30 +0000 | [diff] [blame] | 38 | |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 39 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 40 | def run_start(self): |
| 41 | """A run within this job is starting""" |
| 42 | pass |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 43 | |
| 44 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 45 | def run_pause(self): |
| 46 | """A run within this job is completing (expect continue)""" |
| 47 | pass |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 48 | |
| 49 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 50 | def run_reboot(self): |
| 51 | """A run within this job is performing a reboot |
| 52 | (expect continue following reboot) |
| 53 | """ |
| 54 | pass |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 55 | |
| 56 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 57 | def run_abort(self): |
| 58 | """A run within this job is aborting. It all went wrong""" |
| 59 | pass |
mbligh | 61a6c1a | 2006-12-25 01:26:38 +0000 | [diff] [blame] | 60 | |
| 61 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 62 | def run_complete(self): |
| 63 | """A run within this job is completing (all done)""" |
| 64 | pass |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 65 | |
| 66 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 67 | def test_status(self, status, tag): |
| 68 | """A test within this job is completing""" |
| 69 | pass |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 70 | |
| 71 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 72 | def test_status_detail(self, code, subdir, operation, status, tag): |
| 73 | """A test within this job is completing (detail)""" |
| 74 | pass |
apw | 4b2e4fb | 2007-09-25 16:52:30 +0000 | [diff] [blame] | 75 | |
| 76 | |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 77 | def select(which, job): |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 78 | if not which: |
| 79 | which = 'standalone' |
apw | de1503a | 2006-10-10 08:34:21 +0000 | [diff] [blame] | 80 | |
jadmanski | 0afbb63 | 2008-06-06 21:10:57 +0000 | [diff] [blame] | 81 | exec "import harness_%s" % (which) |
| 82 | exec "myharness = harness_%s.harness_%s(job)" % (which, which) |
| 83 | |
| 84 | return myharness |