"""The harness interface The interface between the client and the server when hosted. """ # pylint: disable=missing-docstring __author__ = """Copyright Andy Whitcroft 2006""" import logging import common class harness(object): """The NULL server harness Properties: job The job object for this job """ def __init__(self, job): """ job The job object for this job """ self.setup(job) def setup(self, job): """ job The job object for this job """ self.job = job def run_start(self): """A run within this job is starting""" pass def run_pause(self): """A run within this job is completing (expect continue)""" pass def run_reboot(self): """A run within this job is performing a reboot (expect continue following reboot) """ pass def run_abort(self): """A run within this job is aborting. It all went wrong""" pass def run_complete(self): """A run within this job is completing (all done)""" pass def run_test_complete(self): """A test run by this job is complete. Note that if multiple tests are run in parallel, this will only be called when all of the parallel runs complete.""" pass def test_status(self, status, tag): """A test within this job is completing""" pass def test_status_detail(self, code, subdir, operation, status, tag, optional_fields): """A test within this job is completing (detail)""" pass def select(which, job, harness_args): if not which: which = 'standalone' logging.debug('Selected harness: %s', which) harness_name = 'harness_%s' % which harness_module = common.setup_modules.import_module(harness_name, 'autotest_lib.client.bin') harness_instance = getattr(harness_module, harness_name)(job, harness_args) return harness_instance