ATLAS Offline Software
Loading...
Searching...
No Matches
athenaEF_tdaq_infra Namespace Reference

Classes

class  Infrastructure

Functions

 parse_args ()
 setup_tdaq_and_reexec (args)
 main ()

Variables

 stream
 stdout
 level
 format
 log = logging.getLogger('athenaEF_infra')
str CM_SETUP = '/cvmfs/atlas.cern.ch/repo/sw/tdaq/tools/cmake_tdaq/bin/cm_setup.sh'
str DEFAULT_TDAQ_RELEASE = 'tdaq-14-00-00'
str STAGE2_ENV = 'ATHENAEF_INFRA_STAGE2'
str READY_MARKER = 'ATHENAEF_INFRA_READY'

Function Documentation

◆ main()

main ( )

Definition at line 264 of file athenaEF_tdaq_infra.py.

264def main():
265 args = parse_args()
266
267 if STAGE2_ENV not in os.environ:
268 setup_tdaq_and_reexec(args) # does not return
269
270 os.makedirs(args.log_dir, exist_ok=True)
271
272 infra = Infrastructure(args)
273 infra.start()
274 print(READY_MARKER, flush=True)
275
276 while infra.check_alive():
277 time.sleep(2)
278
279 infra.stop()
280 return 1
281
282
void print(char *figname, TCanvas *c1)
int main()
Definition hello.cxx:18

◆ parse_args()

parse_args ( )

Definition at line 60 of file athenaEF_tdaq_infra.py.

60def parse_args():
61 parser = argparse.ArgumentParser(
62 description='Start a private TDAQ infrastructure (IPC/IS/webproxy) for athenaEF online-monitoring tests')
63 parser.add_argument('--partition', metavar='NAME', required=True,
64 help='partition name (TDAQ_PARTITION)')
65 parser.add_argument('--webdaq-port', metavar='PORT', type=int, required=True,
66 help='port the webproxy listens on')
67 parser.add_argument('--oh-server', metavar='NAME', required=True,
68 help='name of the OH IS server (TDAQ_OH_SERVER)')
69 parser.add_argument('--run-number', metavar='N', type=int, required=True,
70 help='run number, used to name the output file')
71 parser.add_argument('--schema', metavar='FILE', action='append', default=[],
72 help='IS schema file (absolute path) to load into the ISRepository, '
73 'repeatable. If none is given rdb_server is not started')
74 parser.add_argument('--log-dir', metavar='DIR', default='.',
75 help='directory for infrastructure log files (default: cwd)')
76 parser.add_argument('--tdaq-release', metavar='REL', default=DEFAULT_TDAQ_RELEASE,
77 help='TDAQ release to source via cm_setup.sh (default: %(default)s)')
78 return parser.parse_args()
79
80

◆ setup_tdaq_and_reexec()

setup_tdaq_and_reexec ( args)
re-exec this script through bash after sourcing the TDAQ release.

Definition at line 81 of file athenaEF_tdaq_infra.py.

81def setup_tdaq_and_reexec(args):
82 """re-exec this script through bash after sourcing the TDAQ release."""
83 if not os.path.exists(CM_SETUP):
84 log.error('TDAQ release setup not found at %s', CM_SETUP)
85 sys.exit(1)
86
87 log.info('Sourcing TDAQ release %s via %s', args.tdaq_release, CM_SETUP)
88 os.environ[STAGE2_ENV] = '1'
89 script = os.path.abspath(__file__)
90 cmd = (f'source {CM_SETUP} {args.tdaq_release} || exit 66; '
91 f'exec python3 "{script}" "$@"')
92 os.execv('/bin/bash', ['/bin/bash', '-c', cmd, script] + sys.argv[1:])
93
94

Variable Documentation

◆ CM_SETUP

str athenaEF_tdaq_infra.CM_SETUP = '/cvmfs/atlas.cern.ch/repo/sw/tdaq/tools/cmake_tdaq/bin/cm_setup.sh'

Definition at line 50 of file athenaEF_tdaq_infra.py.

◆ DEFAULT_TDAQ_RELEASE

str athenaEF_tdaq_infra.DEFAULT_TDAQ_RELEASE = 'tdaq-14-00-00'

Definition at line 51 of file athenaEF_tdaq_infra.py.

◆ format

athenaEF_tdaq_infra.format

Definition at line 46 of file athenaEF_tdaq_infra.py.

◆ level

athenaEF_tdaq_infra.level

Definition at line 45 of file athenaEF_tdaq_infra.py.

◆ log

athenaEF_tdaq_infra.log = logging.getLogger('athenaEF_infra')

Definition at line 47 of file athenaEF_tdaq_infra.py.

◆ READY_MARKER

str athenaEF_tdaq_infra.READY_MARKER = 'ATHENAEF_INFRA_READY'

Definition at line 57 of file athenaEF_tdaq_infra.py.

◆ STAGE2_ENV

str athenaEF_tdaq_infra.STAGE2_ENV = 'ATHENAEF_INFRA_STAGE2'

Definition at line 54 of file athenaEF_tdaq_infra.py.

◆ stdout

athenaEF_tdaq_infra.stdout

Definition at line 45 of file athenaEF_tdaq_infra.py.

◆ stream

athenaEF_tdaq_infra.stream

Definition at line 45 of file athenaEF_tdaq_infra.py.