Remove unused style sheets from webadmin war

First of two patches aimed at cleaning up webadmin style sheets and adjusting look and feel.

This patch only deletes unused yaml style sheets which are cluttering up the webadmin.war.

Target: trunk
Patch: http://rb.dcache.org/r/5210
Acked-by: Paul
Require-notes: no
Require-book: no
Merge: 2.5
chimera: fix primary key of checksum table

Currently, the i_nodes_checksum table has the ipnfsid as the primary 
key.  This has the unfortunate effect of preventing a file from having 
more than one checksum value.  (I believe) a file cannot have more than 
one checksum currently; however, future work will likely introduce this 
possibility.

Target: trunk
Require-notes: no
Require-book: no
Patch: http://rb.dcache.org/r/5224/
Acked-by: Gerd Behrmann
chimera: update 'checksum' command to be more useful

The chimera-cli command 'checksum' currently lists all known checksums 
for the targeted file.

This patch adds additional functionality: to list the checksum of a 
specific type, to add a checksum value of a specific type and to remove 
the checksum of a specific type.

The names of checksums are taken from the dCache internal names 
('adler32', 'md5')

Note that there is a problem with the current chimera schema in that 
the ipnfsid field is the primary.  This prevents Chimera from storing 
multiple checksum values against a file; therefore, currently one must 
delete any existing checksum for adding a checksum to work.  Setting 
the primary key to be both ipnfsid and itype will fix this.

Target: trunk
Require-notes: yes
Require-book: yes
Patch: http://rb.dcache.org/r/5222/
Acked-by: Gerd Behrmann
Webadmin: eliminate css redundancy; adjust colors to conform with dCache.org

Second of two patches cleaning up webadmin style sheets.

1.  The hierarchy of the Wicket (resource) stylesheets has been reworked so that redundancies are eliminated (the whole idea of cascading style sheets).  

2.  The color scheme of the webadmin pages has been modified so that it is
    a. consistent with the colors on dcache.org;
    b. self-consistent
    c. more legible (i.e., the color of the navigation panel links are now the dCache darker blue rather than the lighter blue).

Colors were matched by scraping the style sheets at dCache.org and comparing the codes to the main features of the pages which seemed to make sense to adopt here as well.

See screenshots attached.

Target: trunk
Patch:  http://rb.dcache.org/r/5212
Acked-by: Paul
Require-book: no
Require-notes: no
Merge: 2.5
 

Note that this patch can be merged with 2.5 if you simply skip the PoolQueuePlot .css and .html files.

I have regularized the .css files that are wicket resources, but have not touched the .css files in the main webapps directory, since they follow an entirely different format.
chimera: revert 18161

Patch committed as r.18161 exposed a bug in liquibase that prevented 
initialisation of H2 databases.

This patch reverts the earlier as unit-tests are now failing.

An improved patch (likely including a work-around for the liquibase-H2 
bug) will be developed.
srm: Fix credential delegation for srmCopy transfers

JGlobus 2 changes the GlobusGSSCredentialImpl class and breaks backwards
compatibility of serialization. We include an instance of this class in
RemoteGsiftpTransferProtocolInfo. Thus upgrading to JGlobus 2 will break
compatibility with previous versions.

Since we plan to backport JGlobus 2 to dCache 2.2, this is not just a
concern for pool compatibility, but a concern for head node
compatibility too.

Solving this problem is not easy, as we cannot easily force
serialization of the new GlobusGSSCredentialImpl class to become
compatible with the old format. It stands to reason that relying on the
long term serialization stability of JGlobus classes is a bad idea.

This patch is for 2.5 and 2.6 and must be seen together with patch
http://rb.dcache.org/r/5225/ for 2.2.

Note that dCache with this patch will ONLY be compatible with versions for
which http://rb.dcache.org/r/5225/ has been applied.

Target: trunk
Request: 2.5
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5227/
doors,pnfsmanager,chimera: Add checks for root directory

The root directory does not have a parent, yet much of our
code does not check for this special case.

This patch adds such checks to various pieces of code. Some of
the checks may be redundant, but I prefer that each major module
validates its input rather than assuming it is only ever used
in specific circumstances.

A few checks have been removed. This is because the permission
handler has been extended such that it can now reason about
the root directory too.

Target: trunk
Request: 2.5
Request: 2.2 (patch will be attached to merge request)
Request: 1.9.12 (patch will be attached to merge request)
Require-notes: yes
Require-book: no
Ticket: http://rt.dcache.org/Ticket/Display.html?id=7185
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5155/
SRM: report RuntimeException as bugs

The (abstract) SRM implementation includes the concept of scheduling 
activity.  To achieve this, it has a Scheduler class and various 
subclasses of the abstract Job that represent user-triggered activity.  
Concrete subclasses of Job include a method run, within which is the 
code to enact the user-triggered activity.  The run method may throw 
two checked exceptions: NonFatalJobFailure and FatalJobFailure.  These 
represent a transitory and non-transitory problem, respectively.

There are several problems with the current code:

    many method "throw Exception" rather than being more specific; the 
    classes for handling srmCopy operations are particularly guilty of 
    this.

    RuntimeException (== bugs) are often caught by catch-Exception
    clauses (due to previous problem).  These are then re-thrown as
    NonFatalJobFailure, preventing a stack-trace and letting the job
    retry when it will never succeed.

    If a RuntimeException is thrown by the run method of a subclass
    of Job then the Scheduler class will simply print the error 
    message without a stack-trace.

    In at least one case, a FatalJobFailure is caught and wrapped as a
    NonFatalJobFailure (if user specifies StorageType != DURABLE in 
    srmCopy).

    The run method of some classes (PutFileRequest, 
    ReserveSpaceRequest) update the job state to fail the job 
    manually, rather than throwing FatalJobFailure.

This patch addresses these issues.  It:

    updates methods to declare they throw the specific checked 
    exceptions, rather than Exception.

    updates the catch clauses (mostly in the run methods) to catch 
    specific checked exceptions, allowing RuntimeException and any 
    NonFatalJobFailure and FatalJobFailure exceptions to propagate to 
    Scheduler.

    updates the Scheduler class to catch only NonFatalJobFailure, 
    FatalJobFailure and RuntimeException.  Any RuntimeException 
    results in the job failing and a stack-trace being logged.

    updates the run methods so none attempt to fail the job request; 
    instead, they throw FatalJobFailure and allow Scheduler to fail 
    the job.

Note that SRM treats all errors from the back-end as transitory.  This 
is sub-optimal as the storage system has no mechanism to specify a 
non-transitory failure.  This patch marks problem areas with a 
comment, but doesn't attempt to fix this issue.

Target: trunk
Require-notes: no
Require-book: no
Patch: http://rb.dcache.org/r/5183/
Acked-by: Gerd Behrmann
poolmanager: Fix glob matching for psu commands

Some PSU commands accept a glob as a pattern for pool names. The
current code has a bug in which the pattern is evaluates as a
substring match, ie foo*bar matches any pool that contains foo
and bar rather only pools that begin with foo and end with bar.

This patch resolves the issue.

Target: trunk
Request: 2.5
Request: 2.2
Require-notes: yes
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5228/
common: provide a way to force dCache to use defied IP addresses

for hosts behind NAT, VPN and so on. To let dCache to
report a special set of IP addresses java property can be
defined in dcache.conf or layout file:

dcache.java.options.extra= -Dorg.dcache.net.localaddresses=ip1,ip2

An empty property has no effect.

Require-notes: yes
Require-book: yes
Target: trunk
Acled-by: Dmitry Litvintsev
Patch: http://rb.dcache.org/r/5147/