The VO Cache Directory Profile Initialisation --------------------------------------------- This script set, usable for the Bourne shell and, with also for the C-shell if the Bourne shell is installed, will add the VO_xxx_CACHE_DIR environment variable to the users' job environment if such a per-VO specific directory can be located in one of a few places. By default, it will look for VO cache directories under: /var/cache/grid /tmp/gridcache Purpose: Set the VO_xxx_CACHE_DIR variable when appropriate, based on a list of possible base directories for such a cache. The script will accept any incoming VONAME definition (such as set by the globus Job Manager patch) but failing that will try to determine the VO based on the VOMS proxy. Installation: Put these script in the /etc/profile.d directory, and have them executed as early as possible. The default installation will ensure that by prefixing the name with "AA". Configuration: will read /etc/sysconfig/vocachedir Set CACHEBASES to a list of directory paths to which the voname (in lower case) will be appended to name the actual cache directory. Its permissions MUST be at least 01755 (i.e. the directory MUST be sticky) and it MUST be owned by root Note: the script will NOT do cleanup of this directory, use tmpwatch(8) for that. Semantics --------- For the full semantics of the VO cache directory at Nikhef, please refer to our Wiki pages at https://www.nikhef.nl/grid/gridwiki/index.php/VoCacheDir In particular note the way you should write to the cache directory: since multiple users may write there (it's only sticky but otherwise wide open) you're vulnerable to all the default race conditions and exploits to which mkstemp(3) provides the remedy. So, PLEASE USE mktemp(1) and friends to create files in the VO_xxx_CACHE_DIR. About the pbs.in patch ---------------------- The pbs.in patch, to be applied to the pbs.in setup file (which will later generate the pbs.pm job manager script), will ensure that the VONAME environment variable is set as soon as possible, even if on the worker node there is no proxy or no voms-proxy-info command available. Especially if you have 'non-griddy' worker nodes, this may come in handy. When $VONAME is already set, the vocachedir.sh script will NOT need the voms-proxy-info command. After applying this to a 3.1 lcg-CE, you need to regenerate the pbs.pm file (using the globus setup tools) AND restart the globus-job-manager-marshal process (service globus-job-manager-marshal restart). Dependencies ------------ Basically, only /bin/sh is needed (or /bin/csh for the csh variety). Only if the VONAME environment variable is not yet set will voms-proxy-info be needed on the worker node. This has not been put in as a dependency of the RPM, since the script will degrade gracefully (to the NULL operation) if this command is missing.