dCache/dcache — pull request #60 by paulmillar (2013-05-21 09:21:25+00:00)
Title: Fix dCache FTP and SRM to be standards-compliant by default

The overwriteEnabled property affects FTP and SRM doors. The default
is currently 'false', which prevents overwriting of data if the file
already exists.

RFC 959 is quite clear:

STORE (STOR)

This command causes the server-DTP to accept the data
transferred via the data connection and to store the data as
a file at the server site. If the file specified in the
pathname exists at the server site, then its contents shall
be replaced by the data being transferred. A new file is
created at the server site if the file specified in the
pathname does not already exist.

Therefore, by setting overwriteEnabled to 'false', dCache is not
RFC-959 compliant. This is our default behaviour.

Similarly, SRM protocol is also quite clear how storage elements are
expected to behave. Setting overwriteEnabled=false breaks that
expected behaviour.

Moreover, there is no additional security from setting
overwriteEnabled=false. The client can simply delete the data and
upload afresh.

The net result is that dCache is, by default, not standards compliant
for no direct benefit.

For the 2.2 branch, we maintain the existing default value, but
include the warning text.

FOR RELEASE NOTES:

This patch adds an explanation of the overwriteEnabled configuration option.
This controls dCache's behaviour when user attempts to overwrite an existing
file via FTP or SRM.

The default behaviour is not standards-complaint. This patch does NOT
alter this behaviour. Sites are invited to review their configuration.

Target: master
Request: 2.6
Request: 2.2
Patch: http://rb.dcache.org/r/5544/
Acked-by: Dmitry Litvintsev
Acked-by: Tigran Mkrtchyan
Acked-by: Gerd Behrmann
Requires-notes: yes
Requires-book: no