srm: Avoid use of legacy PnfsGetFileMetaDataMessage

Besides removing the use of a legacy message, the patch resolves
a race condition in the directory creation code for uploads. The
old code tried to optimize the kind of meta data that was fetched
from PnfsManager, however since several uploads may interact, this
optimization could lead to errors as one upload would fetch meta
data reused by another upload.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6263/
pnfsmanager: Drop legacy PnfsGetFileMetaDataMessage

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6265/
pnfsmanager: Drop PnfsSetFileMetaDataMessage

The few places that still used it have been updated to use
PnfsSetFileAttributes.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6266/
pnfsmanager: Drop legacy FileMetaData class

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6267/
pnfsmanager: Drop PnfsGetStorageInfoMessage

Updated httpd, replica manager, transfer managers, and srm
to use PnfsGetFileAttributes.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6271/
loginmanager: Automatic reformatting of code

Target: trunk
Require-notes: no
Require-book: no
Patch: none
cells: Refactor LoginManager

Light refactoring of LoginManager, focusing on synchronization,
thread creation, and logging.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6281/
chimera: use path to get files parent on remove

while in most of the cases we need to resolve symbolic links,
on delete we must only link and not the target

Acked-by: Gerd Behrmann
Target: master, 2.6, 2.7, 2.2
Require-book: no
Require-notes: no
Fix configuration cache invalidation

Addresses several issues with configuration cache invalidation.
The symptom of these problems was that the cache was not
invalidated when it should have been.

Specifically:

Fixes an inconsistency between bash and other shell in which
the -ot test behaves differently when the left hand file does
not exist.

Fixes an issue with host name change detection on Mac OS.

Fixes an issue detect that dcache.conf was added.

Target: trunk
Request: 2.7
Request: 2.6
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6293/
Ticket: http://rt.dcache.org/Ticket/Display.html?id=8131
cells: Associate threads and initialization messages with their cell

Use the cell name in threads. Do more cell initialization in
a thread associated with the cell, thus directing log messages
to the proper pinboard.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6282/
cells: Move dCache's cell interfaces into cells

These interfaces were originally placed outside of cells
as cells was a closed product. Now that cells is part of
dcache, there is no reason not to move those interfaces
to the proper place.

This allows the LoginBrokerHandler utility class to be
moved to the same package on the LoginManager it is coupled
to. A future patch will update LoginManager to use that
utility class and thus avoid the code duplication with an
internal class.

This patch only moves classes. Besides deleting the unused
ThreadFactoryAware, there are no code changes.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6285/
system-test: add nfsv41 into default configuration

no portmap/rpcbind required.

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no
ftp: Rename ac_ accessors to ftp_

Using the same ac_ prefix as used for admin commands
is confusing and prevents the same class from providing
both ftp commands and admin commands.

This patch renames the ac_ methods to ftp_.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6295/
cells: Use common LoginBrokerHandler in LoginManager

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6291/
cells: Add factory for login cell creation

Rather than letting LoginManager create login cells purely
through reflection, this patch introduces a factory with
a well defined interface to do the job. Factories are
created through a service provider interface.

A legacy provider implements the old reflection based
instantiation.

The benefit of the factory is that it can maintain shared
state for login cells, such as shared thread pools.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6292/
ftp: Minor cleanup of FTP doors

In preparation of more invasive refactoring in another patch.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
ftp: Refactor FTP door to separate FTP interpreter from I/O logic

This patch splits the FTP protocol interpreter logic from the low
level I/O logic. This structure mimics a similar split in the DCAP
door. The refactoring improves coherence, makes the FTP interpreter
easier to unit test, and is a step towards alternative implementations
of the I/O logic (e.g. using Netty).

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6280/
nfsv41: garbage-collect expired moved

kill movers if NFS client did not show up within session lease time.
Notice, this functionality is independent of timeout manager and
complaint with NFS spec

This is fully working code (the early versions was available in 1
March (http://rb.dcache.org/r/5239/)), nevertheless, still some
thinking required :)

Ticket: #8044
Acked-by: Karsten Schwank
Target: master
Require-book: no
Require-notes: no
pool: bypass IO queue if there is a slot available

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no
Implement EPSV and EPRT commands

The current implementation of the AbstractFtpDoor does not support the
commands EPSV and EPRT needed for IPv6 support.

This patch adds both.

Target: master
Target: 2.7
Target: 2.6
Require-book: yes
Require-notes: yes