ftp: Comply with new property policy

Besides updating all ftp related properties to comply with the
new policy, this patch collapses the various ftp services into
a single service. A property is now used to select the authentication
protocol. This is how it is done for webdav and xrootd already. The
new configuration policy encourages this approach as most ftp
properties are independent of the authentication protocol and were
shared by all serices. Collapsing them into a single service makes
the service more DRY.

New properties:

ftp.cell.name
ftp.authn.protocol
ftp.authn.kerberos.service-principle-name
ftp.authn.kerberos.key-distribution-center-list
ftp.authn.hostcert.key
ftp.authn.hostcert.cert
ftp.authn.capath
ftp.authn.kpwd
ftp.authz.stage
ftp.authz.stage.pep
ftp.authz.readonly
ftp.net.port
ftp.net.port-range
ftp.net.internal
ftp.performance-marker-period
ftp.performance-marker-period.unit
ftp.limits.retries
ftp.limits.streams-per-client
ftp.limits.clients
ftp.mover.queue
ftp.transaction-log
ftp.overwrite
ftp.security.ciphers
ftp.service.poolmanager
ftp.service.poolmanager.timeout
ftp.service.poolmanager.timeout.unit
ftp.service.spacemanager.enabled
ftp.service.pool.timeout
ftp.service.pool.timeout.unit
ftp.service.pnfsmanager
ftp.service.pnfsmanager.timeout
ftp.service.pnfsmanager.timeout.unit
ftp.service.loginbroker.family
ftp.service.loginbroker.version
ftp.service.gplazma
ftp.service.billing

Deprecated

ftpPort
kerberosFtpPort
gsiFtpPortNumber
clientDataPortRange
gsiftpAdapterInternalInterface
performanceMarkerPeriod
gsiftpMaxRetries
gsiftpMaxStreamsPerClient
gsiftpMaxLogin
gsiftpDeleteOnConnectionClosed
gsiftpIoQueue
FtpTLogDir
gridftp.security.ciphers
gsiftpPoolManagerTimeout
gsiftpPoolManager
gsiftpPoolTimeout
gsiftpPnfsTimeout

Forbidden

ftp/kerberos.service-principle-name
ftp.read-only
ftp/port

Removed

ftpBase
spaceReservation
spaceReservationStrict
gsiftpAllowPassivePool
kerberosScvPrincipal
gsiftpDefaultStreamsPerClient

Removed services

kerberosftp
gridftp

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5694/
(logging) minor adjustments to error-level logging (@author arossi)

I have gone through all the .java files carrying the annotation @author arossi, looking for logging irregularities.  I have tried to eliminate things like logger.error logging a stack trace when not clearly an unexpected exception (bug).  There are also a few other minor fixes.

Target: master
Patch: http://rb.dcache.org/r/5690/
Require-notes: no
Require-book: no
Acked-by: Paul
dcache: (billing) Fix incorrect MoverData field name

Regression introduced by last large multi-patch billing update.

The MoverData field 'p2p' was renamed to 'isPtp', following suggestion that Java convention be followed.  However, the liquibase and package.jdo files continued to assume the database table attribute was 'p2p'.  Hence when the data object gets dehydrated by DataNucleus, the insert statement fails.

This patch reverts the Java field name to 'p2p'.

Testing done:

Without the patch, writes to the billing database will produce the following error:

02 jul 2013 05:43:03 (billing) [] Insert of object "org.dcache.services.billing.db.data.MoverData@6e19f13" using statement "INSERT INTO "billinginfo"
("transfersize","fullsize","cellname","datestamp","protocol","action","errormessage","initiator","transaction","storageclass","errorcode","client","isp2p","pnfsid","isnew","connectiontime")
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" failed : user lacks privilege or object not found: isp2p
02 jul 2013 05:43:03 (billing) [] could not not commit; some billing
data may be lost

With the patch, successful srmcp produced the correct entry in billinginfo.

Note:  this has been tested on a regular instance of dcache, not using system-test.

Target: master
Patch: http://rb.dcache.org/r/5692/
Require-book: no
Require-notes: yes
Request: 2.6
Acked-by: Gerd

RELEASE NOTES:  Fixes bug preventing inserts into the billinginfo table.
ssh-admin: quieten noisy logging

We deliver dCache without an authorized_keys2 file, yet
attempts to log in when a user presents an SSH key results in
logging like:

03 Jul 2013 14:11:40 (ssh2Admin) [] The authorized_keys2 file was not found. Please check if it exists in: /home/paul/git/dCache/packages/system-test/target/dcache/etc/admin/authorized_keys2
03 Jul 2013 14:11:40 (ssh2Admin) [] Could not find key: RSA Public Key
            modulus: b724ef9e0182b02db76ea20a0f674d83 [many hex digits follow ...]
    public exponent: 23
in /home/paul/git/dCache/packages/system-test/target/dcache/etc/admin/authorized_keys2.
03 Jul 2013 14:11:40 (ssh2Admin) [] The authorized_keys2 file was not found. Please check if it exists in: /home/paul/git/dCache/packages/system-test/target/dcache/etc/admin/authorized_keys2
03 Jul 2013 14:11:40 (ssh2Admin) [] Could not find key: DSA Public Key
            y: 51e74d6deb9b0b87456522d56f4fb952c21ec0 [many hex digits follow ...]
in /home/paul/git/dCache/packages/system-test/target/dcache/etc/admin/authorized_keys2.

This is wrong as the authorized_keys2 file is not required and
the login attempt was actually successful, using username+password
authentication.

This patch reduces the above messages to a single message per failure to
read the authorized_keys2 file (rather than two) and logs this message at
debug level, rather than error.

Some log messages were also rephrased to avoid unnecessary verbosity.

Target: master
Requires-book: no
Requires-notes: no
Patch: http://rb.dcache.org/r/5696/
Acked-by: Gerd Behrmann