KVM test: Add helpers to control the TAP/bridge
[autotest-zwu.git] / client / bin / harness.py
blobd8a5191a8c6b224cb900047f1e587f80ee1c8d6f
1 """The harness interface
3 The interface between the client and the server when hosted.
4 """
6 __author__ = """Copyright Andy Whitcroft 2006"""
8 import os, sys, logging
9 import common
11 class harness(object):
12 """The NULL server harness
14 Properties:
15 job
16 The job object for this job
17 """
19 def __init__(self, job):
20 """
21 job
22 The job object for this job
23 """
24 self.setup(job)
27 def setup(self, job):
28 """
29 job
30 The job object for this job
31 """
32 self.job = job
34 configd = os.path.join(os.environ['AUTODIR'], 'configs')
35 if os.path.isdir(configd):
36 (name, dirs, files) = os.walk(configd).next()
37 job.config_set('kernel.default_config_set',
38 [ configd + '/' ] + files)
41 def run_start(self):
42 """A run within this job is starting"""
43 pass
46 def run_pause(self):
47 """A run within this job is completing (expect continue)"""
48 pass
51 def run_reboot(self):
52 """A run within this job is performing a reboot
53 (expect continue following reboot)
54 """
55 pass
58 def run_abort(self):
59 """A run within this job is aborting. It all went wrong"""
60 pass
63 def run_complete(self):
64 """A run within this job is completing (all done)"""
65 pass
68 def run_test_complete(self):
69 """A test run by this job is complete. Note that if multiple
70 tests are run in parallel, this will only be called when all
71 of the parallel runs complete."""
72 pass
75 def test_status(self, status, tag):
76 """A test within this job is completing"""
77 pass
80 def test_status_detail(self, code, subdir, operation, status, tag,
81 optional_fields):
82 """A test within this job is completing (detail)"""
83 pass
86 def select(which, job, harness_args):
87 if not which:
88 which = 'standalone'
90 logging.debug('Selected harness: %s' % which)
92 harness_name = 'harness_%s' % which
93 harness_module = common.setup_modules.import_module(harness_name,
94 'autotest_lib.client.bin')
95 harness_instance = getattr(harness_module, harness_name)(job, harness_args)
97 return harness_instance