pnfsmanager: Fix tag handling in upload path creation

The map builder does not allow the same element to be added twice, which leads
to failures if WriteToken exists in both the target directory and the request.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Albert Rossi <arossi@fnal.gov>
Patch: http://rb.dcache.org/r/6840/
Fix CellStub callback.

Fixes wrong callback in case of error replies.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Albert Rossi <arossi@fnal.gov>
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6839/
ftp: add support for updating atime

This patch adds support for a client to update a file's or directory's
atime.  The MFMT, MFCT and MFF commands requires that the actual value
is returned to the client, allowing that this might not be the value
the client requested.

When updating atime, the actual value is somewhat unpredicable as it
depends on the pnfsmanager.atime-gap value and the previous atime
value.  Therefore, to return the correct value, the FTP door must query
chimera to find the actual value set.

To avoid the overhead of an extra RTT, this patch modifies the behavour
of the PnfsSetFileAttributes so that it may optionally return a set of
attributes.  The default behaviour queries none, which results in no
additional overhead.

The FTP door is updated so MFMT, MFCT and MFF commands return the
actual value set rather than assuming the user-supplied value is
accepted.  This allows these commands to return more robust response
values to the client.

Target: master
Patch: http://rb.dcache.org/r/6802/
Acked-by: Gerd Behrmann
Acked-by: Tigran Mkrtchyan
pkg: fix solaris packaging

added new profile to build solaris package:

$ mvn package -am -pl packages/fhs -P pkg

This is the old package format, but still supported by
Oracle Solaris 11.

Target: master, 2.8, 2.7
Acked-by: Paul Millar
Require-book: no
Require-notes: yes
admin: Fix cd to System cell

6250598677f3a3edccabfed9a28368b6d02db764 introduced a regression by move the
xyzzy noop command to CellAdapter and thus removing it from the System cell.
As a result, cd to the System cell resulted in an error reply. UserAdminShell
however silently ignored this error and nothing bad happened.

1e706795bfe43482d949c5dc1102fb7e513227c9 ported UserAdminShell to CellStub
which rethrows exception replies. As a consequence the UserAdminShell's cell
check would now fail, claiming that the System cell doesn't exist.

The fix adds the xyzzy command to System cell. The patch also changes
UserAdminShell to only consider TimeoutCacheException (which also covers no
route to cell errors) as a non-existing cell. Other errors are logged and
otherwise ignored.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6841/
cells: Fix message timeout

CellNucleus relies on periodic calls to executeMaintenanceTasks for message
timeouts for asynchronous tasks to work. Every dCache cell does this
automatically by inheriting from AbstractCell, but old-scholl cells in the
cells package don't. This was not a problem as long as cells only used blocking
communication, however a recent change refactored blocking communication on top
of asynchronous communication. This broke reconnect in LocationManager.

The patch addresses the problem on two fronts: It adds an explicit timeout to
the blocking get call in sendAndWait, thus ensuring a timely timeout; and it
moves the automatic calls of executeMintenanceTasks from AbstractCell to
CellNucleus.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6843/
ftp: add logging when client disconnects

Patch: http://rb.dcache.org/r/6844/
Acked-by: Gerd Behrmann
Target: master
gplazma-nis: suppress annoying error message

If the NIS plugin fails to map a username then it logs this as an error.

On gPlazma configured kerberos and NIS, where the Kerberos host
principal is used when mounting via NFS, there are many times where
NIS plugin is unable to map the host credential.  This results in
the plugin spamming the log file with meaningless error messages.

This patch pushes the significance of this to debug level.

Target: master
Patch: http://rb.dcache.org/r/6845/
Acked-by: Gerd Behrmann
transfermanagers: Fix multi-domain issue

Fixes an inssue that prevented transfermanagers from being used in any
other domain that the srm services. This issue has apparently existed for
years, possibly from the very first version of the SRM.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Albert Rossi <arossi@fnal.gov>
Patch: http://rb.dcache.org/r/6846/
cells: Add help command to System cell

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6850/
admin: Add array output

Several cell commands return binary objects. These are used internally, but are
also exposed through the admin interface. They are converted to string form using
Object#toString, however for arrays this only produces an object reference.

This patch adds output of the array content to the admin door.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6851/
pool: Let permanent migration jobs react to access and sticky changes

Permanent migration jobs react to changes to the repository by adding or
removing files from the job queue. Until now migration jobs only picked up
state changes, ignoring changes to sticky flags and access time. This was
originally done to avoid that the pool to pool transfer issued by the migration
job would trigger the file to be added back into the queue. Since the original
implementation, we have however modified pool to pool transfers to no longer
trigger an atime update. Thus it is now feasible to let migration jobs react to
all changes.

The patch modifies the change notification to include both the old and the
updated information about the replica. The migration job only adds a replica
to the queue if the old information did not match while the new matches.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6855/
info: remove emi.version from non-EMI dCache releases

dCache v2.7 and later are not part of any EMI release, therefore we
should not publish an EMI version for these releases.

For v2.6 the situation is more complicated, since the version is
released both through EMI and dcache.org.  Future patches may make this
distinction, allowing non-EMI releases to omit publishing any EMI
version.

Target: master
Request: 2.8
Request: 2.7
Patch: http://rb.dcache.org/r/6854/
Acked-by: Gerd Behrmann
info: add potentially useful static information

Various potentially useful pieces of information are available as
standard properties provided by Java.  This patch adds them to the
domain-specific static information.

The hierarchy from Java is mostly used, except where a branch would
be created with a single metric.

Target: master
Patch: http://rb.dcache.org/r/6856/
Acked-by: Gerd Behrmann
ftp: fix CKSM command for files with white-space

The CKSM command allows a client to request the checksum of a
file.  It assumes that the path contains no whitespace and fails
any request where this isn't true.

This patch fixes this.

Target: master
Patch: http://rb.dcache.org/r/6853/
Acked-by: Gerd Behrmann
Request: 2.8
Request: 2.7
Request: 2.6
ftp: add work-around for GlobusOnline uploads

The GlobusOnline client expects that the MD5 checksum is available
after uploading the file and does not degrade gracefully if an
alternative checksum is supplied.

This patch adds support where, if the GO client identifies itself,
then the pool is requested to generate an MD5 checksum.

Target: master
Patch: http://rb.dcache.org/r/6853
Acked-by: Gerd Behrmann
admin: Fix help on error

The admin shell used to output a command summary in case of syntax errors,
however recent refactoring broke this when the admin shell was ported to
CellStub (CellStub assumes that dCache uses CacheException, while much code
that comes from cells relies on CommandException).

This patch resolves the issue.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: http://rb.dcache.org/r/6865/
scripts: add database updateSQL command

Print the SQL statements which will be applied by update command.

Acked-by: Paul Millar
Target: master
Require-book: no
Require-notes: yes
chimera: introduce inode generation number

on some workloads we need to detect that file or a directory have
been changed, even if mtime and ctime does not reflect that. This
can happen if time resolution is not good enough or timestams
where reseted back.

To reliably identify inode changes, introduced a new field,
igeneration, which is monotonically incremented on each inode
modification.

RELEASE NOTES:
The first start of namespace will take some time ( ~10-20 min )
for database schema update.

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: yes
gplazma2-ldap: use url rather than host+port

the ldap plugin builds the url of the ldap server using

"ldap://" + host + ":" + port

this way the protocol always is always "ldap". This prevents
the plugin from using secure ldap using "ldaps".
This patch substitutes host and port by a freely definable url.

Ticket: 8289
Acked-by:
Target: trunk
Require-book: yes
Require-notes: yes