11) -> None:
12 """Script to set the value of an environment variable in the specified Session of the
13 specified OKS database file"""
15 if session_name == "":
16 print(f"Error: the session name needs to be specified", file=sys.stderr)
17 return
18 else:
19 try:
20 session = db.get_dal("Session", session_name)
21 except:
22 print(f"Error: could not find Session \"{session_name}\" in file \"{oksfile}\"", file=sys.stderr)
23 return
24
25 schemafiles = [
26 "schema/confmodel/dunedaq.schema.xml"
27 ]
29
30
31 existing_env_var = None
32 for entry in session.environment:
33 if isinstance(entry, dal.VariableSet):
34 for subentry in entry.contains:
35 if subentry.name == requested_env_var_name:
36 existing_env_var = subentry
37 break
38 else:
39 if entry.name == requested_env_var_name:
40 existing_env_var = entry
41
42 if existing_env_var is not None:
43 break
44
45
46 if existing_env_var is not None and not overwrite:
47 return
48
49
50 if existing_env_var is not None:
51 existing_env_var.value = requested_env_var_value
52 db.update_dal(existing_env_var)
53
54
55 else:
56
57
58
59
60 new_env_var_dal_name = session_name + "-env-var-" + requested_env_var_name
61 new_env_var_dal_name = new_env_var_dal_name.lower()
62 new_env_var_dal_name = new_env_var_dal_name.replace("_", "-")
63
64 new_env_var = dal.Variable(new_env_var_dal_name, name=requested_env_var_name, value=requested_env_var_value)
65 db.update_dal(new_env_var)
66
67 session.environment.append(new_env_var)
68 db.update_dal(session)
69
70
71 db.commit()
module(name, schema, other_dals=[], backend='oksconflibs', db=None)