VO specific software on the Grid
DRAFT
Accessing software distributed via CVMFS
For most VOs the software is now being distributed via CVMFS. The only detail a user (client) has to know is how the repository(-ries) are mapped on Worker Nodes.
In this article we will use the gridpp VO repository, which is mapped to /cvmfs/gridpp.egi.eu/
. A VO software administrator uploaded a following example
python script and saved it as testing/hello.py
:
#!/usr/bin/env python import sys print "----------------------" print "Hello, I'm a snake ! /\/\/o" print "----------------------" print " More info:\n" print (sys.version) #
It normally takes a few hours before uploaded software becomes available to clients.
Now we need to create a job wrapper (run_hello_cvmfs.sh
) which will be submitted as a Dirac executable:
#!/bin/bash # # Run the Python script. export GRIDPP_VO_CVMFS_ROOT=/cvmfs/gridpp.egi.eu/testing/HelloWorld if [ -d "$GRIDPP_VO_CVMFS_ROOT" ]; then $GRIDPP_VO_CVMFS_ROOT/hello.py else echo "Requester CVMFS directory does not exist $GRIDPP_VO_CVMFS_ROOT " exit 1 fi #
The last step is to created a Dirac jdl
file (hello_cvmfs.jdl
):
[ JobName = "Snake_Job_CVMFS"; Executable = "run_hello_cvmfs.sh"; Arguments = ""; StdOutput = "StdOut"; StdError = "StdErr"; InputSandbox = {"run_hello_cvmfs.sh"}; OutputSandbox = {"StdOut","StdErr"}; ]
In the jdl we define the executable (run_hello_cvmfs.sh
) which is shipped with the job in the input sandbox. Now we can submit our first CVMFS job:
dirac-wms-job-submit -f logfile hello_cvmfs.jdl
Check its status, which in our case returned:
dirac-wms-job-status -f logfile JobID=5213546 Status=Running; MinorStatus=Job Initialization; Site=VAC.UKI-LT2-RHUL.uk; <nowiki> When job finishes, we can grab the output (<code>dirac-wms-job-get-output -f logfile</code>), which reads: <nowiki> ---------------------- Hello, I'm a snake ! /\/\/o ---------------------- More info: 2.7.12 (default, Dec 17 2016, 21:07:48) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]