Pawn:Old Receiving Server
From Adapt
Global Configuration
A keystore needs to be setup to store producer public keys in. Currently, the keystore is in pkcs12 format and uses the bouncycastly API to read and process public keys.
<Parameter name="edu.umiacs.pawn.receiver.keystore" value="WEB-INF/keystore"/> <Parameter name="edu.umiacs.pawn.receiver.keystore.passwd" value="_keystore password_"/>
Configuring Producers
Multiple producing sites can use the same receiving server. In PAWN producing sites are largely independant and can have different validation and publishing steps for their clients. At a minimum, a producing site is defined by a url and a public key used to verify METS documents signed by the receiving server. The parameters
<Parameter name="edu.umiacs.pawn.receiver.producer.keystorealias.testproducer" value="producer"/> <Parameter name="edu.umiacs.pawn.receiver.producer.url.testproducer" value="http://naradev03.umiacs.umd.edu:8080/pawn/services/Producer" />
Configuring Storage Pools
Storage pools are temporary space used to process incoming SIPs. PAWN can use multiple storage pools on a receiving server. Pools are chosen by the scheduler or client when a reservation is created through createReservation. The edu.umiacs.pawn.receiver.repository.pool_name parameter is used configure storage pools.
Example: (two pools, pool1 and pool2)
<Parameter name="edu.umiacs.pawn.receiver.repository.pool2" value="/export/tomcat/pool1"/> <Parameter name="edu.umiacs.pawn.receiver.repository.pool1" value="/export/pool/pool1"/>
Configuring Endpoints
Specifying Endpoints
PAWN allows for varying destinations of metadata and objects, called endpoints, depending on the what producer a client is attached to. You can have multiple endpoints for each producer. In addition, each endpoint can have a different configuration depending on the producer.
In the context.xml file, all endpoint configuration is prefixed with edu.umiacs.pawn.receiver.endpoint. Endpoints are specified by naming the driver/class and producer it should be attached to.
edu.umiacs.pawn.receiver.endpoint.producer.class.endpoint_name edu.umiacs.handler.class
ex for attaching SRBHandler and TestHandler to testproducer
<Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.class.testhandler" value="edu.umiacs.pawn.receiving.xml.TestHandler"/> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.class.srbhandler" value="edu.umiacs.pawn.receiving.srb.SRBHandler"/>
Similiar to specifying the class for an endpoint, all configuration information that is passed to an endpoint must be prefixed by the producer. There is no global configuration for any endpoint.
For example, the SRB endpoint has a configuration option 'srb.domain'. This would be fully listed by prefixing it with the endpoint prefix and producer:
<Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.domain" value="umiacs"/>
SRB Endpoint
The SRB endpoint can be used to pulish files and METS documents into the SRB. Currently, there are no fancy options for publishing into SRB metadata, just pushing raw bits and xml files into SRB space. When defining collections in the SRB, a few tokens are supported to allow publishing location to be somewhat dynamic
- %d - current div path from root mets document
- %r - name of the reservation
All options:
- srb.domain
- Domain of SRB account to use
- srb.user
- Username of SRB account to use
- srb.password
- Password of SRB account
- srb.zone
- Zone to publish into
- srb.host
- MCAT or SRBMaster to connect to
- srb.resource
- Resource to push files into
- srb.port
- Port of MCAT or SRBMaster
- srb.version
- Protocol version of the SRB, from the jargon docs, default is the protocol for 3.0-3.2 SRB versions.
- srb.overwrite
- Should duplicate files be overwritten, or duplicates be renames (file.1, file.2..etc)
- srb.checksumoverwrite
- Should files with matching checksums be overwritten (not implemented yet)
- srb.mets-collection
- Directory to deposit mets documents into. %d will dump to the root of the document.
- srb.payload-collection
- Directory to deposit payload items into.
Example configuration for an SRB endpoint
<!-- target handlers for producer 'testproducer' --> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.class.srbhandler" value="edu.umiacs.pawn.receiving.srb.SRBHandler"/> <!-- SRB Handler specific configuration --> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.user" value="toaster"/> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.password" value="password"/> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.domain" value="umiacs"/> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.host" value="naradev01.umiacs.umd.edu"/> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.port" value="5544"/> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.resource" value="naradev01-unix"/> <!-- publish all mets files into one directory named after client reservation --> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.mets-collection" value="/nara-umiacs2/home/toaster.umiacs/endpoint1/%r"/> <!-- publish files into original div path, but anchored at endpoint1/payload --> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.payload-collection" value="/nara-umiacs2/home/toaster.umiacs/endpoint1/payload/%d"/> --> <Parameter name="edu.umiacs.pawn.receiver.endpoint.testproducer.srb.version" value="SRB-3.3&G" />
-- Main.MikeSmorul - 04 May 2005