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 |