Each individual pool, which is expected to exchange data with an HSM, has to define a dCache external method to flush/fetch datasets into/from one or more connected HSM’s. The command decribed below has either to be given in the command line interface of the corresponding pool while the pool is active (don’t forget so “save”) or may be added to the pool setup file commands prior to starting the pool.
Syntax : hsm set <hsmName> -command=<fullPathToExternalCommand> Example : hsm set osm -command=/usr/d-cache/jobs/osm-hsmcp.sh or hsm set enstore -command=/usr/d-cache-deployment/jobs/real-enstore.sh
The external method, which might be a shell script or a binary, is called by the dCache with a set of positional arguments (see below). In addition, options may be specified which are appended to the regular argument list on calling the external method.
Syntax : hsm set <hsmName> -<key>=<value> Example : hsm set osm -command=/usr/d-cache/jobs/osm-hsmcp.sh hsm set osm -pnfs=/pnfs/desy.de -somethingElse=true
This will result in excuting the following command line whenever a file has to be exchanged with an HSM.
/usr/d-cache/jobs/osm-hsmcp.sh put|get <pnfsId> <LocalFilename> \ -si=<See Below> \ -pnfs=/pnfs/desy.de \ -somethingElse=true