Release and Run FESA Software
Software written with FESA can be run in different environments, according to the specific needs. In order to make the software available in a specific environment, first it needs to be released.
It is not possible to connect any additional hardware to the asl-cluster! For such use-cases
FEC's are available.
In order to release your FESA software to a specific
FEC, first make sure you already created an instance-file for this
FEC. The
FESA3 hands on explains in detail how this can be done. Take care to specify the right
FEC in the eclipse dialog-box! Dont add the appendix '.acc.gsi.de' to the name of the
FEC.
NOTE: Your Linux user account needs to be in the group "fesa" to be able to deliver your software. Ask CS/CO/IN if your account is not already in the group.
NOTE: After the software is released, the access path to the devices must be made known to the directory server. It has to be checked explicitly that access by RDA/CMW is possible. See at
end of this page
(virtual) Frontends ( fcs00a / scuxl0001... )
Release
The state of a FESA-Class, and the FESA-Deployment-Unit is defined in the xml-element "information/state".
If this state is set so a value different from 'operational', a development release will be done !
- open the deploy-unit of your class
- click on the 'Release' icon or right-click on the project and choose FESA --> Release from the menu
- Select the correct architecture, according to the boot-image which is used on your FEC
- Select the FEC for which you want to release the software
- Now eclipse will generate the source code, compile the software and copy it to the correct NFS-location
- Details about the NFS can be found here
- The operations are logged on the Console View
Run
Depending on where the FESA software is running, different run configurations have to be used:
First use ssh to connect to your
FEC (assuming you are currently on the asl-cluster) scuxl0123 in this example
# ssh root@scuxl0123
// Ask the FESA-Team or IN for the password if you dont know it yet
SCU 64Bit
For 64Bit frontends development and operative FESA-software is managed in different ways.
The state of a FESA-Class, and the FESA-Deployment-Unit is defined in the xml-element "information/state".
development
FESA software in development state will be available in the
FEC folder: '/opt/fesa/local/<deploy-unit name>-d'
It will not be managed by a daemon. ( This is indicated by the appendix '-d' in the directory-name )
In order to e.g. run the binary of 'MyDeployUnit', follow these steps:
// Go to the folder where the binary is located:
# cd /opt/fesa/local/MyDeployUnit-d
// execute your binary while providing the needed application-arguments
./MyDeployUnit -confdir /opt/fesa/local/MyDeployUnit-d/ -instance MyDeployUnit.instance -vv
// (-vv = very verbose ) Use the option -h for a full list of possible arguments
// According to your needs it may be required to add additional application-arguments ( .e.g. -usrArgs -WR if you want to use WR-Timing )
./MyDeployUnit -confdir /opt/fesa/local/MyDeployUnit-d/ -instance MyDeployUnit.instance -usrArgs -WR
// You can stop the binary by pressing CTRL + C
operative
On reboot a daemon launches all operative deploy-units in the delivery directory. ( '/opt/fesa/local/<deploy-unit name>' )
It will cleanly detach from the terminal, capture stdout and stderr and restart any crashed binary.
More information on how to control the daemon can be found
here.
SCU 32Bit
This and future FESA-versions do not support 32Bit boot-image. Please upgrade your software / SCU-boot-image to 64Bit
development asl cluster (asl730..asl734)
Release
No release is needed if the FESA Software should run on the development system.
Run
The access rights on the asl-cluster are restricted. Therefore FESA software can't be run as root there, the Linux RT priorities can't be used.
As an alternative Linux' NICE scheduling is used. To trigger this behaviour use the command line argument -noRTSched when launching the FESA software.
Take in mind that the rt-priorities given in the deploy-unit- / instance-file will be converted to NICE-levels [0...99] --> [20 ... -19]. The maximum rt-prio which can be used on the asl cluster is '50'. This value will be converted to a NICE-level of '0'
In order to e.g. run the binary of 'MyDeployUnit', follow these steps:
// Go to the folder where the start-Script is located E.g:
# cd myWorkspaceLocation/MyDeployUnit/src/test/asl73x
// Launch the script:
# ./startManually_MyDeployUnit_X.sh -f -noRTSched -vv
// (-vv = very verbose ) Use the option -h for a full list of possible arguments
// You can stop the binary by pressing CTRL + C
productive asl cluster (asl330..asl334)
Release
The procedure for the productive asl cluster is identical with the
release procedure for FEC's
Run
Like in the
development asl-cluster the access rights on the asl-cluster are restricted !
TODO: How to configure a Daemon for the prod cluster ?
MCS, Saclay, France ( scuxl0047f, ... )
Release
The system will be installed in Saclay, France and is accessible from GSI via a network/internet connection. To release FESA software to that system, script templates are provided
in the Plinac Wiki . These scripts can be adapted to release your FESA software to the MCS system. It is recommended to store the adapted scripts with the FESA deploy-unit in the SVN repository.
Run
Information on how to run FESA Software on the MCS can be found
in the Plinac Wiki .
Check architecture
Depending on which machine you want to run your FESA software, you need to release for 'the architecture i686' (32Bit) or 'x86_64' (64Bit).
ASL-Cluster
The architecture of the OS is 'x86_64', however as well 32Bit binaries (i686) will run here.
Frontends
Currently different types of boot-images are available. The 64Bit boot-image should be preferred if possible !
In order to to check which image you are using, login to your
FEC and type:
uname -m
If you are still using the old, 32Bit boot-image(i686), check if you can switch to the up-to-date 64Bit image:
- Are all dependant libraries as well available for 64Bit ?
- Can you get your FESA software to compile + link for 64 Bit ?
If you can answer both questions with 'yes', please contact the
Infrastruture team in order update the boot-image of your
FEC.
RDA/CMW Client-Access
Database Entries
For access via RDA/CMW device informaton must be provided for the directory server (nameserver). These device information is stored in the FESA database.
RDA/CMW Testprogram
To verify the access to a device a program is provided:
cscosv-device-test. Besides a lot of output at the end the states of the involved access elements is summarized.
It requires two parameters: the name of the device to be tested and the property which is called.
/common/usr/cscosv/opt/cscosv-device-test/bin/cscosv-device-test.sh <device name> <property>