For a given RUCIO DID finds optimal access paths.
This service is intended to run as part of a ServiceX
deployment. In that role it listens for Dataset Lookup requests on the
rucio_did_requests
RabbitMQ queue. Upon receipt, it asks Rucio to resolve the
dataset and return the files that make it up. The server selects a replica and
passes it back to the ServiceX app to request transformation.
Build the docker image as:
% docker build -t sslhep/servicex-did-finder .
The latest image is also available on dockerhub
The service requires two volumes to be mounted in order to operate:
-
A valid x509 proxy certificate in
/etc/grid-security-ro
. There is a script that usually gets run to copy the cert to a correctly permissioned directory. The location of the cert can be overridden by setting the X509_USER_PROXY environment variable. -
Rucio config file in
/opt/rucio/etc/
The server accepts the following arguments when it is launched
Argument | Description | Default |
---|---|---|
--rabbit-uri |
A valid URI to the RabbitMQ Broker | None |
--prefix |
A string to prepend on resulting file names. Useful to add xCache to URLs | ' ' |
The service requires a custom rucio.cfg
which contains the CERN account name
associated with the provided Certs. A template .cfg file is provided in this
repo's config
directory. Ordinarily this would be constructed by the helm chart.
To get an optimal (usually closest) file replica, two environment variables have to be set: RUCIO_LATITUDE and RUCIO_LONGITUDE. This is normally done through helm chart values.
To run a standalone test against for example ATLAS rucio instance do:
setupATLAS
lsetup rucio
voms-proxy-init
pip install -r requirements.txt
python3 direct_test/test1.py