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()

athenaEF_tdaq_infra.main ( )

Definition at line 229 of file athenaEF_tdaq_infra.py.

229def main():
230 args = parse_args()
231
232 if STAGE2_ENV not in os.environ:
233 setup_tdaq_and_reexec(args) # does not return
234
235 os.makedirs(args.log_dir, exist_ok=True)
236
237 infra = Infrastructure(args)
238 infra.start()
239 print(READY_MARKER, flush=True)
240
241 while infra.check_alive():
242 time.sleep(2)
243
244 infra.stop()
245 return 1
246
247
void print(char *figname, TCanvas *c1)
int main()
Definition hello.cxx:18

◆ parse_args()

athenaEF_tdaq_infra.parse_args ( )

Definition at line 56 of file athenaEF_tdaq_infra.py.

56def parse_args():
57 parser = argparse.ArgumentParser(
58 description='Start a private TDAQ infrastructure (IPC/IS/webproxy) for athenaEF online-monitoring tests')
59 parser.add_argument('--partition', metavar='NAME', required=True,
60 help='partition name (TDAQ_PARTITION)')
61 parser.add_argument('--webdaq-port', metavar='PORT', type=int, required=True,
62 help='port the webproxy listens on')
63 parser.add_argument('--oh-server', metavar='NAME', required=True,
64 help='name of the OH IS server (TDAQ_OH_SERVER)')
65 parser.add_argument('--run-number', metavar='N', type=int, required=True,
66 help='run number, used to name the output file')
67 parser.add_argument('--log-dir', metavar='DIR', default='.',
68 help='directory for infrastructure log files (default: cwd)')
69 parser.add_argument('--tdaq-release', metavar='REL', default=DEFAULT_TDAQ_RELEASE,
70 help='TDAQ release to source via cm_setup.sh (default: %(default)s)')
71 return parser.parse_args()
72
73

◆ setup_tdaq_and_reexec()

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

Definition at line 74 of file athenaEF_tdaq_infra.py.

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

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 46 of file athenaEF_tdaq_infra.py.

◆ DEFAULT_TDAQ_RELEASE

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

Definition at line 47 of file athenaEF_tdaq_infra.py.

◆ format

athenaEF_tdaq_infra.format

Definition at line 42 of file athenaEF_tdaq_infra.py.

◆ level

athenaEF_tdaq_infra.level

Definition at line 41 of file athenaEF_tdaq_infra.py.

◆ log

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

Definition at line 43 of file athenaEF_tdaq_infra.py.

◆ READY_MARKER

str athenaEF_tdaq_infra.READY_MARKER = 'ATHENAEF_INFRA_READY'

Definition at line 53 of file athenaEF_tdaq_infra.py.

◆ STAGE2_ENV

str athenaEF_tdaq_infra.STAGE2_ENV = 'ATHENAEF_INFRA_STAGE2'

Definition at line 50 of file athenaEF_tdaq_infra.py.

◆ stdout

athenaEF_tdaq_infra.stdout

Definition at line 41 of file athenaEF_tdaq_infra.py.

◆ stream

athenaEF_tdaq_infra.stream

Definition at line 41 of file athenaEF_tdaq_infra.py.