DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqconf
python
daqconf
get_session_env_var.py
Go to the documentation of this file.
1
import
conffwk
2
import
confmodel_dal
3
import
sys
4
5
def
get_session_env_var
(
6
oksfile: str, session_name: str, requested_env_var_name: str, quiet: bool =
False
7
) -> str |
None
:
8
"""Script to get the value of an environment variable in the specified Session of the
9
specified OKS database file"""
10
db =
conffwk.Configuration
(
"oksconflibs:"
+ oksfile)
11
if
session_name ==
""
:
12
if
not
quiet:
13
print(f
"Error: the session name needs to be specified"
, file=sys.stderr)
14
return
15
else
:
16
try
:
17
session = db.get_dal(
"Session"
, session_name)
18
except
:
19
if
not
quiet:
20
print(f
"Error: could not find Session \"{session_name}\" in file \"{oksfile}\""
, file=sys.stderr)
21
return
22
23
schemafiles = [
24
"schema/confmodel/dunedaq.schema.xml"
25
]
26
dal =
conffwk.dal.module
(
"dal"
, schemafiles)
27
28
# Check if the requested env var is defined for the specified OKS Session
29
existing_env_var =
None
30
for
entry
in
session.environment:
31
if
isinstance(entry, dal.VariableSet):
32
for
subentry
in
entry.contains:
33
if
subentry.name == requested_env_var_name:
34
existing_env_var = subentry
35
break
36
else
:
37
if
entry.name == requested_env_var_name:
38
existing_env_var = entry
39
40
if
existing_env_var
is
not
None
:
41
break
42
43
# Return the value, or complain and return None if the env var was not found
44
if
existing_env_var
is
None
:
45
if
not
quiet:
46
print(f
"Error: could not find env var \"{requested_env_var_name}\" in Session \"{session_name}\""
, file=sys.stderr)
47
return
48
else
:
49
value = existing_env_var.value
50
return
value
conffwk.Configuration.Configuration
Definition
Configuration.py:29
conffwk.dal.module
module(name, schema, other_dals=[], backend='oksconflibs', db=None)
Definition
dal.py:695
get_session_env_var
Definition
get_session_env_var.py:1
Generated on
for DUNE-DAQ by
1.17.0