FHICL Configuration Manager

The FHICL Configuration Manager is a package designed to maintain fhicl configurations, either in the form of text files or database tables. The initial customer of this package is the LBNE 35ton DAQ system, where DAQ component configurations are stored in fhicl files on disk for use by ARTDAQ processes. However, this code is generic enough that any DAQ system using ARTDAQ, and really any system using ART in general, could make use of the utilities provided here.

Configuration Manager

The CfgMgr C++ class provides the user with an interface for providing a list of available configurations (right now by looking for subdirectories in a base configuration directory), and a map between a component name and a configuration URI for a particular configuration id.

Configuration Manager Server

The CfgMgrApp is essentially a XMLRPC server that owns an instance of the CfgMgr. The defaults of the executable are to use port 8080 and to use the $CWD as the base configuration directory. A command line argument will set this directory, eg:

> CfgMgrApp /data/lbnedaq/config/

Currently the XMLRPC methods that are supported are:

  • "cfgs.getList": parameter list is {offset,nconfigs}, and the return value is a map.dictionary where the (key,value) pairs are (configuration name (string), description (string)). The offset and nconfigs parameters may be used to extract a partial list of configurations. Eg, if there are 1000 configurations and we only want to show the first 20, the ioffset=0 and nconfig=20. The next 20 configurations can be obtained by setting ioffset=20 and nconfig=20, etc. If nconfigs is set to 0, then all configurations are returned. An offset value of 0 will always force a reloading of the available configurations from either disk or database.
  • "cfg.getURIs": parameter list is {configuration id, array of component names}, and the return value is a map/dictionary where the (key,value) pairs are (component name, full path to .fcl configuration file). Note that only pairs where a configuration file was found for the component are returned, eg, it's up to the client to check the validity of the returned data.

Starting up the CfgMgrApp on lbne35t-gateway01

Log in as lbnedaq on this machine and execute the following:

 cd cfgmgrDevel
 source ~/fhicl_cfgmgr/ups/setup_for_development -p
 cd ~/fhicl_cfgmgr/fhicl_cfgmgr/Server
 CfgMgrApp /data/lbnedaq/config/

How to see if CfgMgr is running

To see if CfgMgr is running, use the "ps" command check:

ps aux  |grep -v grep |grep CfgMgr

If necessary, the CfgMgr process can be killed. To kill them, the second field returned from "ps aux" is the process id (PID), use:

kill <PID>