org.griphyn.cPlanner.transfer.implementation
Class Stork

java.lang.Object
  extended by org.griphyn.cPlanner.transfer.implementation.Abstract
      extended by org.griphyn.cPlanner.transfer.implementation.AbstractSingleFTPerXFERJob
          extended by org.griphyn.cPlanner.transfer.implementation.Stork
All Implemented Interfaces:
Implementation, SingleFTPerXFERJob

public class Stork
extends AbstractSingleFTPerXFERJob

The implementation that creates transfer jobs referring to the stork data placement scheduler that can handle only one transfer per job.

Stork is directly invoked by DAGMAN. The appropriate Stork modules need to be installed on the submit host.

It leads to the creation of the setup chmod jobs to the workflow, that appear as parents to compute jobs in case the transfer implementation does not preserve the X bit on the file being transferred. This is required for staging of executables as part of the workflow. The setup jobs are only added as children to the stage in jobs.

In order to use the transfer implementation implemented by this class, the property vds.transfer.*.impl must be set to value Stork.

Version:
$Revision: 458 $
Author:
Karan Vahi

Field Summary
static String DERIVATION_NAME
          The name of the underlying derivation.
static String DERIVATION_NAMESPACE
          The derivation namespace for for the transfer job.
static String DERIVATION_VERSION
          The derivation version number for the transfer job.
static String DESCRIPTION
          A short description of the transfer implementation.
static String TRANSFORMATION_NAME
          The name of the underlying transformation that is queried for in the Transformation Catalog.
static String TRANSFORMATION_NAMESPACE
          The transformation namespace for the transfer job.
static String TRANSFORMATION_VERSION
          The version number for the transfer job.
 
Fields inherited from class org.griphyn.cPlanner.transfer.implementation.Abstract
CHANGE_XBIT_TRANSFORMATION, mDisabledChmodSites, mLocalUserProxy, mLocalUserProxyBasename, mLogger, mPOptions, mProps, mRefiner, mSCHandle, mTCHandle, NOOP_PREFIX, SET_XBIT_PREFIX, XBIT_DERIVATION_NS, XBIT_DERIVATION_VERSION, XBIT_TRANSFORMATION_NS, XBIT_TRANSFORMATION_VERSION
 
Fields inherited from interface org.griphyn.cPlanner.transfer.Implementation
TRANSFER_UNIVERSE, VERSION
 
Constructor Summary
Stork(PegasusProperties properties, PlannerOptions options)
          The overloaded constructor, that is called by the Factory to load the class.
 
Method Summary
 TransferJob createTransferJob(SubInfo job, FileTransfer file, Collection execFiles, String txJobName, int jobClass)
          Constructs a general transfer job that handles single transfers per transfer job.
 boolean doesPreserveXBit()
          Returns a boolean indicating whether the transfer protocol being used by the implementation preserves the X Bit or not while staging.
protected  String generateArgumentString(TransferJob job, FileTransfer file)
          It constructs the arguments to the transfer executable that need to be passed to the executable referred to in this transfer mode.
protected  String getCompleteTCName()
          Returns the complete name for the transformation.
protected  String getDerivationName()
          Returns the logical name of the derivation that this implementation refers to.
protected  String getDerivationNamespace()
          Returns the namespace of the derivation that this implementation refers to.
protected  String getDerivationVersion()
          Returns the version of the derivation that this implementation refers to.
 String getDescription()
          Returns a textual description of the transfer implementation.
 TransformationCatalogEntry getTransformationCatalogEntry(String siteHandle)
          Retrieves the transformation catalog entry for the executable that is being used to transfer the files in the implementation.
 boolean useThirdPartyTransferAlways()
          Return a boolean indicating whether the transfers to be done always in a third party transfer mode.
 
Methods inherited from class org.griphyn.cPlanner.transfer.implementation.AbstractSingleFTPerXFERJob
createTransferJob
 
Methods inherited from class org.griphyn.cPlanner.transfer.implementation.Abstract
addSetXBitJobs, addSetXBitJobs, addSetXBitJobs, applyPriority, checkAndTransferProxy, construct, createNoOPJob, createSetXBitJob, determineDisabledChmodSites, disableChmodJobCreation, getNOOPJobName, getPathToUserProxy, getPriority, getSetXBitJobName, setRefiner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRANSFORMATION_NAMESPACE

public static final String TRANSFORMATION_NAMESPACE
The transformation namespace for the transfer job.


TRANSFORMATION_NAME

public static final String TRANSFORMATION_NAME
The name of the underlying transformation that is queried for in the Transformation Catalog.

See Also:
Constant Field Values

TRANSFORMATION_VERSION

public static final String TRANSFORMATION_VERSION
The version number for the transfer job.


DERIVATION_NAMESPACE

public static final String DERIVATION_NAMESPACE
The derivation namespace for for the transfer job.

See Also:
Constant Field Values

DERIVATION_NAME

public static final String DERIVATION_NAME
The name of the underlying derivation.

See Also:
Constant Field Values

DERIVATION_VERSION

public static final String DERIVATION_VERSION
The derivation version number for the transfer job.

See Also:
Constant Field Values

DESCRIPTION

public static final String DESCRIPTION
A short description of the transfer implementation.

See Also:
Constant Field Values
Constructor Detail

Stork

public Stork(PegasusProperties properties,
             PlannerOptions options)
The overloaded constructor, that is called by the Factory to load the class.

Parameters:
properties - the properties object.
options - the options passed to the Planner.
Method Detail

useThirdPartyTransferAlways

public boolean useThirdPartyTransferAlways()
Return a boolean indicating whether the transfers to be done always in a third party transfer mode. A value of false, results in the direct or peer to peer transfers being done.

A value of false does not preclude third party transfers. They still can be done, by setting the property "vds.transfer.*.thirdparty.sites".

Returns:
boolean indicating whether to always use third party transfers or not.
See Also:
PegasusProperties.getThirdPartySites(String)

doesPreserveXBit

public boolean doesPreserveXBit()
Returns a boolean indicating whether the transfer protocol being used by the implementation preserves the X Bit or not while staging.

Returns:
boolean

getDescription

public String getDescription()
Returns a textual description of the transfer implementation.

Returns:
a short textual description

createTransferJob

public TransferJob createTransferJob(SubInfo job,
                                     FileTransfer file,
                                     Collection execFiles,
                                     String txJobName,
                                     int jobClass)
Constructs a general transfer job that handles single transfers per transfer job. There are appropriate callouts to generate the implementation specific details. It throws an error if asked to create a transfer job for more than one transfer.

Overrides:
createTransferJob in class AbstractSingleFTPerXFERJob
Parameters:
job - the SubInfo object for the job, in relation to which the transfer node is being added. Either the transfer node can be transferring this jobs input files to the execution pool, or transferring this job's output files to the output pool.
file - collection of FileTransfer objects representing the data files and staged executables to be transferred.
execFiles - subset collection of the files parameter, that identifies the executable files that are being transferred.
txJobName - the name of transfer node.
jobClass - the job Class for the newly added job. Can be one of the following: stage-in stage-out inter-pool transfer
Returns:
the created TransferJob.

getTransformationCatalogEntry

public TransformationCatalogEntry getTransformationCatalogEntry(String siteHandle)
Retrieves the transformation catalog entry for the executable that is being used to transfer the files in the implementation. The entry does not refer to any physical path.

Parameters:
siteHandle - the handle of the site where the transformation is to be searched.
Returns:
the transformation catalog entry if found, else null.

getDerivationNamespace

protected String getDerivationNamespace()
Returns the namespace of the derivation that this implementation refers to.

Specified by:
getDerivationNamespace in class AbstractSingleFTPerXFERJob
Returns:
the namespace of the derivation.

getDerivationName

protected String getDerivationName()
Returns the logical name of the derivation that this implementation refers to.

Specified by:
getDerivationName in class AbstractSingleFTPerXFERJob
Returns:
the name of the derivation.

getDerivationVersion

protected String getDerivationVersion()
Returns the version of the derivation that this implementation refers to.

Specified by:
getDerivationVersion in class AbstractSingleFTPerXFERJob
Returns:
the version of the derivation.

generateArgumentString

protected String generateArgumentString(TransferJob job,
                                        FileTransfer file)
It constructs the arguments to the transfer executable that need to be passed to the executable referred to in this transfer mode.

Specified by:
generateArgumentString in class AbstractSingleFTPerXFERJob
Parameters:
job - the transfer job that is being created.
file - the FileTransfer that needs to be done.
Returns:
the argument string

getCompleteTCName

protected String getCompleteTCName()
Returns the complete name for the transformation.

Specified by:
getCompleteTCName in class AbstractSingleFTPerXFERJob
Returns:
the complete name.


Copyright © 2007 The University of Southern California. All Rights Reserved.