| OLD | NEW |
| 1 """The standalone harness interface | 1 """The standalone harness interface |
| 2 | 2 |
| 3 The default interface as required for the standalone reboot helper. | 3 The default interface as required for the standalone reboot helper. |
| 4 """ | 4 """ |
| 5 | 5 |
| 6 __author__ = """Copyright Andy Whitcroft 2007""" | 6 __author__ = """Copyright Andy Whitcroft 2007""" |
| 7 | 7 |
| 8 from autotest_lib.client.common_lib import utils | 8 from autotest_lib.client.common_lib import utils, error |
| 9 import os, harness, shutil, logging | 9 import os, harness, shutil, logging |
| 10 | 10 |
| 11 class harness_standalone(harness.harness): | 11 class harness_standalone(harness.harness): |
| 12 """The standalone server harness | 12 """The standalone server harness |
| 13 | 13 |
| 14 Properties: | 14 Properties: |
| 15 job | 15 job |
| 16 The job object for this job | 16 The job object for this job |
| 17 """ | 17 """ |
| 18 | 18 |
| 19 def __init__(self, job, harness_args): | 19 def __init__(self, job, harness_args): |
| 20 """ | 20 """ |
| 21 job | 21 job |
| 22 The job object for this job | 22 The job object for this job |
| 23 """ | 23 """ |
| 24 self.autodir = os.path.abspath(os.environ['AUTODIR']) | 24 self.autodir = os.path.abspath(os.environ['AUTODIR']) |
| 25 self.setup(job) | 25 self.setup(job) |
| 26 | 26 |
| 27 src = job.control_get() | 27 src = job.control_get() |
| 28 dest = os.path.join(self.autodir, 'control') | 28 dest = os.path.join(self.autodir, 'control') |
| 29 if os.path.abspath(src) != os.path.abspath(dest): | 29 if os.path.abspath(src) != os.path.abspath(dest): |
| 30 shutil.copyfile(src, dest) | 30 shutil.copyfile(src, dest) |
| 31 job.control_set(dest) | 31 job.control_set(dest) |
| 32 | 32 |
| 33 logging.info('Symlinking init scripts') | 33 logging.info('Symlinking init scripts') |
| 34 rc = os.path.join(self.autodir, 'tools/autotest') | 34 rc = os.path.join(self.autodir, 'tools/autotest') |
| 35 # see if system supports event.d versus inittab | 35 # see if system supports event.d versus systemd versus inittab |
| 36 if os.path.exists('/etc/event.d'): | 36 supports_eventd = os.path.exists('/etc/event.d') |
| 37 supports_systemd = os.path.exists('/etc/systemd') |
| 38 supports_inittab = os.path.exists('/etc/inittab') |
| 39 if supports_eventd or supports_systemd: |
| 37 # NB: assuming current runlevel is default | 40 # NB: assuming current runlevel is default |
| 38 initdefault = utils.system_output('/sbin/runlevel').split()[1] | 41 initdefault = utils.system_output('/sbin/runlevel').split()[1] |
| 39 elif os.path.exists('/etc/inittab'): | 42 elif supports_inittab: |
| 40 initdefault = utils.system_output('grep :initdefault: /etc/inittab') | 43 initdefault = utils.system_output('grep :initdefault: /etc/inittab') |
| 41 initdefault = initdefault.split(':')[1] | 44 initdefault = initdefault.split(':')[1] |
| 42 else: | 45 else: |
| 43 initdefault = '2' | 46 initdefault = '2' |
| 44 | 47 |
| 45 try: | 48 try: |
| 46 utils.system('ln -sf %s /etc/init.d/autotest' % rc) | 49 utils.system('ln -sf %s /etc/init.d/autotest' % rc) |
| 47 utils.system('ln -sf %s /etc/rc%s.d/S99autotest' % (rc,initdefault)) | 50 utils.system('ln -sf %s /etc/rc%s.d/S99autotest' % (rc,initdefault)) |
| 48 except: | 51 except: |
| 49 logging.warning("Linking init scripts failed") | 52 logging.warning("Linking init scripts failed") |
| OLD | NEW |