"""The standalone harness interface The default interface as required for the standalone reboot helper. """ __author__ = """Copyright Andy Whitcroft 2007""" from autotest_lib.client.common_lib import utils, error import os, harness, shutil, logging class harness_standalone(harness.harness): """The standalone server harness Properties: job The job object for this job """ def __init__(self, job, harness_args): """ job The job object for this job """ self.autodir = os.path.abspath(os.environ['AUTODIR']) self.setup(job) src = job.control_get() dest = os.path.join(self.autodir, 'control') if os.path.abspath(src) != os.path.abspath(dest): shutil.copyfile(src, dest) job.control_set(dest) logging.debug("Symlinking init scripts") rc = os.path.join(self.autodir, 'tools/autotest') # see if system supports event.d versus systemd versus inittab supports_eventd = os.path.exists('/etc/event.d') supports_systemd = os.path.exists('/etc/systemd') supports_inittab = os.path.exists('/etc/inittab') if supports_eventd or supports_systemd: # NB: assuming current runlevel is default initdefault = utils.system_output('/sbin/runlevel').split()[1] elif supports_inittab: initdefault = utils.system_output('grep :initdefault: /etc/inittab') initdefault = initdefault.split(':')[1] else: initdefault = '2' try: service = '/etc/init.d/autotest' service_link = '/etc/rc%s.d/S99autotest' % initdefault if os.path.islink(service): os.remove(service) if os.path.islink(service_link): os.remove(service_link) os.symlink(rc, service) os.symlink(rc, service_link) except Exception, e: logging.error("Symlink init scripts failed with %s", e)