webadmin: Simplify titel initialization of base page

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7089/
Intern several strings on message deserialization

Serialization/deserialization of messages with an object stream reset
in between messages has the side effect of completely decoupling those
object graphs. Thus elements (like strings) that were shared before,
are no longer shared when deserializing. This wastes a lot of memory
for string fields with a small universe of possible values.

This patch adds code to internalize some string fields during deserialization.
This is only done for fields for which the value would typically come from
a relatively small domain.

The particular messages touched by this patch related to the active
transfers page in webadmin and the patch thus reduces the memory footprint
of that information.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7088/
webadmin: Reimplement active transfers page

Reimplements most of the active transfers page of webadmin, including the
information gathering logic, transfer cancellation, pagination, sorting,
filtering, etc.

Queries to gather information about active transfers are no longer
sequential: Both queries to login brokers, doors, and pools are
done concurrently. This should lead to much more up to date information
on large and busy systems.

Transfer cancellation is no longer done per pool. Instead all selected
transfers are aborted concurrently.

The amount of state copied into each view is much smaller. Rather than
repeatedly copying the transfer state into ActiveTransferBean,
ActiveTransfersBean is used as the data model in the MoverDAO.

The entire list of active transfers is no longer copied into each
instance of the page. This copy could quickly lead to problems to
memory consumption, in particular when several clients opened the
page at the same time. Instead the shared list of active transfers
is exposed as a data provider. The data in this provider is
rendered by a Wicket DataTable component.

Pagenation, sorting and filtering are implemented server side. This
has the benefit that when a very large number of transfers are ongoing,
not all of them need to be rendered at once. Sorting and filtering
is pagenation aware. Since these things are implemented server side,
the pagenation, sorting, filtering and selection state survives
automatic form reloading.

The selection state has been decoupled from the data model, meaning
that there is no need for the SelectableWrapper hack.

I followed Wicket recomendations and did *not* introduce a separte panel.
It is easy enough to refactor once the same view is needed somewhere
else. Until then a separate panel just clutters the code.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Albert Rossi <arossi@fnal.gov>
Acked-by: Karsten Schwank <karsten.schwank@desy.de>
Patch: https://rb.dcache.org/r/7084/
cells: remove System time dependency in unit-test

The CellNameServiceRegistryTests class provides unit-tests for the
CellNameServiceReigstry.  One of these tests verifies that expired
well-known cells registration is removed successfully, leaving the
existing cells intact.

This patch refacts CellNameServiceRegistry slighly to allow a
subclass to adjust its concept of time.  This is used to provide a
reliable simulated flow of time in the unit-tests, removing the
need for a sleep statement.

Target: master
Patch: https://rb.dcache.org/r/7090/
Acked-by: Tigran Mkrtchyan
Request: 2.9
Request: 2.8
Request: 2.7
Request: 2.6
webadmin: fix regression in alarm deletion filter

Patch 6344 introduced a regression in the webadmin alarms
management which prohibits the deletion of entries.

See http://rb.dcache.org/r/6344.

which forced a range limit on the number of
entries returned by a query.  JDO does not allow
a range to be specified this way on a deletion query,
but this case was overlooked.

This patch remedies the oversight.

Testing:

Deployed with patch; successfully deleted checked entries from table.

Target: master
Request: 2.9
Request: 2.8
Request: 2.7
Request: 2.6
Require-book: no
Require-notes: yes
Acked-by: Karsten
Acked-by: Paul

RELEASE NOTES:  Fixes a regression in the webadmin alarms
page preventing the deletion of entries from the alarm
table.
dcache-webadmin: fix pool queue plot grid placeholder image

The pool queue plot grid is computed to find the best square fit up to 8 X 8 of plots.
This means that there will remainders (blanks) for all but the square cases.
Previously the placeholder was an empty symbol denoting no pool, but this particular
image was not the right size and at any rate was rather ugly.

The patch replaces the previous image with a simple blank image the same size as the plots.

Target:  master
Request: 2.9
Request: 2.8
Request: 2.7
Request: 2.6
Require-notes: no
Require-book: no
Acked-by: Dmitry
srm: improve error message

dCache SRM reports back to the client if the supplied number of levels in an
ls request is negative.  This patch rephrases the error message and
includes the client's value.

Target: master
Patch: https://rb.dcache.org/r/7092
Acked-by: Karsten Schwank
Require-notes: no
Require-book: no
pool: Fix race condition that leads to orphaned files

Using FileNotInCacheException cause the chimera registration to be cleared.
Clearly we don't want this when the file is actually in the pool and just
happens to be in a state in which it isn't accessible.

This patch changes the exception to LockedCacheException.

This is an alternative to patch: https://rb.dcache.org/r/5801

Target: trunk
Request: 2.9
Request: 2.8
Request: 2.7
Request: 2.6
Request: 2.2
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7103/
Suppress nfs' file protocol from being published

The dcache-info-provider publishes all doors as endpoints by default. A
couple of doors are already configured to be excluded from this, but the
nfs door isn't and causes an file://xyz/ endpoint to be published.

Ticket: 8365
Acked-by:
Target: master
Request: 2.9
Request: 2.6
Request: 2.2
Require-book: no
Require-notes: yes
pool: Update repository javadoc

Adjust JavaDoc to match recent changes.

Patch: none
Target: master
pool: Account#allocateNow() should trigger sweeper to get some space

Currently, Accoutn#allocateNow() utilize only free space, but does not
uses reclaimable space. As a result allocateNow will fail on pools with
all files cached.

This change makes sure, that sweeper get informed about the requested space.

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no
pool: add Allocator#allocateNow()

add a non-blocking version of allocate.

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no
pool: add soft/hard space allocation modes

The classic dcache behavior it to block if there is no space available to write requests.
This strategy is not always matches clients expectations.

Introduce SOFT/HARD allocation modes for mover channel.
Update movers to use new option.
Introduce NoSpaceLeftException
Updated nfs mover to use soft allocation and return NO_SPACE if allocation failed

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: yes
delegation-shell: generate delegated credential of correct type

There are several types of proxy credential.  Currently the delegation shell generates
a fixed type.

In practise, the chain of proxy certificates must be of the same type or some services
will reject the chain.

This patch updates the delegation client so it generates a certificate of the same
type as the most recent (top-most) proxy certificate.

Target: master
Patch: https://rb.dcache.org/r/7112/
Acked-by: Gerd Behrmann
Request: 2.9
nfsv4: get client from current session for v4.1

Target: master
Acked-by: Karsten Schwank
Require-book: no
Require-notes: no
Update third party dependencies

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Karsten Schwank <karsten.schwank@desy.de>
Patch: https://rb.dcache.org/r/7108/
Update to DataNucleus 4

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7109/
deb: Add python-psycopg2 as a recommended dependency

Needed by dcache-star.

Target: trunk
Request: 2.9
Request: 2.8
Request: 2.7
Request: 2.6
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: https://rb.dcache.org/r/7091/
pool: Add file count to 'info' output

By request of our admins.

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: https://rb.dcache.org/r/7081/
src: remove obsolete code

Acked-by: Gerd Behrmann
Target: master
Require-book: no
Require-notes: no