Generation of Release-Installation-Path variables

Add attribute SW_Repository::InstallationPathVariableName to define name of process environment variable and substitution parameter, pointing to the release installation. Such variables and parameters are automatically created by DAL algorithms for each software repository used by an application.

One of such variable is TDAQ_INST_PATH. There will be no need to define in the database or remember about it's value synchronization with sw repository installation path. It's value will be created by DAL fro each application from TDAQ release sw repository or for each application using TDAQ sw repository. Similar variable can be generated for detectors, e.g. to create TILE_INST_PATH variable one has to set  InstallationPathVariableName = "TILE_INST_PATH" for sw repositoty object describing Tile release.

When non-TDAQ release is described in the config database and installation path variable is required, an appropriate name of the variable has to be put into sw repository object and the variable has to be removed from database, if it was already defined.

The change affects dal schema, dal library and dal_create_sw_repository application. The latter one introduces new parameter to specify name of the generated variable, that is already used by the DAQRelease package.

Description of IGUI Properties

There is a proposal to improve IGUI configuration, which will be used in next tdaq-01-08 release. The functionality described in this section already has been implemented in the dal package and users are welcome for suggestions on it's improvements.

Introduction

Different detectors and TDAQ sub-systems develop own plug-ins for IGUI. Before a new run, where different detectors and systems are participating, one has to modify manually IGUI start script and to define which plug-ins and jar files need to be used for next run. The improvement suggestion is to put information about plug-ins and jars into Configuration database and to setup IGUI transparently for users taking into account which systems and detectors are participation in the run.

The original proposal is the following:

Since many detectors are using RCD and we do not have description of C++ plug-ins used by that framework, the only level of granularity we can use is the software repository (and not a sw object or application). By this reason it is proposed to put description of IGUI's properties and jar files on the level sw repository description and assume, if a sw repository is used, then associated IGUI plug-ins need to be configured and displayed.

Note, similar approach is used which IS info description files need to be loaded by the is-info rdb server.
Schema Changes
DB Population

The new attribute is filled by the dal_create_sw_repository utility, when a user puts into cmt requirements file the following macro:

macro sw.repository.igui-properties.a_name: "a_value"
Above a_name is any logical non-empty name you like and a_value will be added to the value of corresponding SW_Repository::IGUIProperties attribute. For example:
macro sw.repository.igui-properties.logfile: "-Digui.logfile=${TDAQ_LOGS_PATH}/igui.out"
If one needs to fill SW_Repository::IGUIProperties attribute for a detector or a sub-system, this has to be done manually using oks data editor or by some script.

For jar files used by the IGUI, it is assumed that we have to use all ones, which are put into used sw repository objects.
How to get IGUI properties

There is a new binary called dal_get_igui_setup. It reads the configuration description for given partition, finds all used sw repositories, builds space-separated list of IGUI properties and colon-separated list of jar files and set these two lists to some environment variables using sh or csh syntax as shown below:

bash$ dal_get_igui_setup -d oksconfig:daq/partitions/be_test.data.xml -p be_test -s sh
export __IGUI_PROPERTIES__="-Digui.logfile=/tmp/test_logs/be_test/igui.out"
export __IGUI_CLASSPATH__="/afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/ClipsServer.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/DFdal.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/config.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/dal.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/igui.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/mrs.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/oksconfig.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/pmg.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/rdbconfig.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/rm.jar"
tcsh$ dal_get_igui_setup -d rdbconfig:RDB -p be_test -s csh
setenv  __IGUI_PROPERTIES__ "-Digui.logfile=/tmp/test_logs/be_test/igui.out"
setenv __IGUI_CLASSPATH__ "/afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/ClipsServer.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/DFdal.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/config.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/dal.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/igui.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/mrs.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/oksconfig.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/pmg.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/rdbconfig.jar:
                           /afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/share/lib/rm.jar"
To be done by setup or IGUI developers

This dal_get_igui_setup needs to be used by setup or igui start script to add values of above two variables to appropriate IGUI parameters (i.e. list of properties passed to java and to be pre-pended to CLASSPATH).

Schema Changes

Below there are schema changes not described above:

API Changes

Bug Fixes