dCache/dcache — pull request #398 by alrossi (2014-02-05 21:26:18+00:00)
Title: chimera-nfs: add bringonline command to ".(fset)"

This patch depends on 6409, but also on current trunk/master being fixed (see testing below). Currently, these changes have not been tested because of the bug blocking their operation.

Adds an operation type to the ".(fset)" dot command to be able to bring a file on line from an archived state. As with the ".(get)()(locality)" operation, this requires a file system interface in Chimera which is also dCache aware, so that calls can be made to the PoolManager and PinManager.

The following changes have been made:

1. FileSystemProvider API extended with two methods, pin() and unpin().
2. PSET inode slightly refactored, with additional call to the filesystem to set pinned state.
3. PinManager cell endpoint added to DCacheAware filesystem, in order to implement the two added methods.
4. Relevant timeout properties for the PinManager instance added.

TESTING:

on testbed, using 4.1. Pinning and unpinning, along with lifetime, works as it should.

Target: master
Request: 2.8
Request: 2.7
Request: 2.6
Patch: http://rb.dcache.org/r/6410
Require-notes: yes
Require-book: yes
Depends-on: http://rb.dcache.org/r/6409

BOOK:
RELEASE NOTES:

A new command has been added to the NFS dot-command set to allow users to pin and unpin files. Files which are not on disk will be brought on line.

The command takes the following form:

touch ".(fset)(filename)(pin|stage|bringonline)(duration)([SECONDS|MINUTES|HOURS|DAYS])"

The variants of the third argument are equivalent in effect.

The last argument is optional and defaults to SECONDS.

A duration value of 0 will unpin the file. The command does not allow the user to pin the file indefinitely (the duration value must be a positive integer).

Three new properties associated with the configuration of the pinmanager have been added to nfs.properties:

nfs.service.pinmanager=${dcache.service.pinmanager}
nfs.service.pinmanager.timeout=300000
(one-of?MILLISECONDS|SECONDS|MINUTES|HOURS|DAYS)nfs.service.pinmanager.timeout.unit=MILLISECONDS
(cherry picked from commit 79d9b47c96140eb70d8bdc66e9af45b376f49504)

Signed-off-by: alrossi