DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
set_session_env_var Namespace Reference

Functions

 set_session_env_var (oksfile, session_name, requested_env_var_name, requested_env_var_value)
 

Function Documentation

◆ set_session_env_var()

set_session_env_var.set_session_env_var ( oksfile,
session_name,
requested_env_var_name,
requested_env_var_value )
Script to set the value of an environment variable in the specified Session of the
specified OKS database file

Definition at line 4 of file set_session_env_var.py.

4def set_session_env_var(oksfile, session_name, requested_env_var_name, requested_env_var_value):
5 """Script to set the value of an environment variable in the specified Session of the
6 specified OKS database file"""
7 db = conffwk.Configuration("oksconflibs:" + oksfile)
8 if session_name == "":
9 print(f"Error: the session name needs to be specified")
10 return
11 else:
12 try:
13 session = db.get_dal("Session", session_name)
14 except:
15 print(f"Error could not find Session {session_name} in file {oksfile}")
16 return
17
18 schemafiles = [
19 "schema/confmodel/dunedaq.schema.xml"
20 ]
21 dal = conffwk.dal.module("dal", schemafiles)
22
23 # First, check if the requested env var is already defined for the specified OKS Session
24 existing_env_var = None
25 for entry in session.environment:
26 if isinstance(entry, dal.VariableSet):
27 for subentry in entry.contains:
28 if subentry.name == requested_env_var_name:
29 existing_env_var = subentry
30 existing_env_var.value = requested_env_var_value
31 break
32 else:
33 if entry.name == requested_env_var_name:
34 existing_env_var = entry
35 existing_env_var.value = requested_env_var_value
36
37 if existing_env_var is not None:
38 break
39
40 # if we found an existing env var, update the DB with the new value
41 if existing_env_var is not None:
42 db.update_dal(existing_env_var)
43
44 # otherwise, create a new env var and assign it to the OKS Session
45 else:
46 new_env_var_dal_name = "temporary-env-var-" + requested_env_var_name
47 new_env_var_dal_name = new_env_var_dal_name.lower()
48 new_env_var_dal_name = new_env_var_dal_name.replace("_", "-")
49
50 new_env_var = dal.Variable(new_env_var_dal_name, name=requested_env_var_name, value=requested_env_var_value)
51 db.update_dal(new_env_var)
52
53 session.environment.append(new_env_var)
54 db.update_dal(session)
55
56 # commit all changes
57 db.commit()
module(name, schema, other_dals=[], backend='oksconflibs', db=None)
Definition dal.py:673