|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.griphyn.cPlanner.transfer.implementation.Abstract
org.griphyn.cPlanner.transfer.implementation.AbstractMultipleFTPerXFERJob
org.griphyn.cPlanner.transfer.implementation.CRFT
public class CRFT
The implementation that creates transfer jobs referring to the c rft client executable distributed with the VDS.
The rft client is invoked on the submit host. Hence there should be an
entry in the transformation catalog for logical transformation
CRFT at site local. The transformation should point
to the client that is distributed with RFT in GT4.
The user can tweak the options to the globus-crft client by specifying the properties
in the properties files with the prefix pegasus.transfer.crft.
The following table lists all the properties with their prefixes stripped off,
that the user can specify in the properties files. The default value is used
if the user does not specify a particular property. If a value is not specified,
the particular option is not generated.
For the properties which have a default value of no default and the user not providing a value for the property, the option is not propogated further to the client underneath. In that case, it is upto the client to construct the appropriate value for that property/option.
| property | default value | description |
|---|---|---|
| endpoint | no default (required option) | The endpoint to contact when creating a service. |
| concurrent | no default | The number of simultaneous transfers. |
| parallel | no default | The number of parallel sockets to use with each transfer. |
| tcp-bs | no default | specifies the size (in bytes) of the TCP buffer to be used by the underlying ftp data channels |
| verbose | true | to generate more verbose output, helpful for debugging. |
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 pegasus.transfer.*.impl must be set to value CRFT.
There should be an entry in the transformation catalog with the fully qualified
name as globus::crft for all the sites where workflow is run,
or on the local site in case of third party transfers.
| Field Summary | |
|---|---|
static String |
CONCURRENT_KEY
The key name that denotes the number of files to be transferred at any given time. |
static String |
CREATE_KEY
The key name that denotes to create a RFT service. |
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 |
END_POINT_KEY
The key name that denotes the endpoint to contact when creating a service. |
private Properties |
mCRFTProps
The properties object holding all the RFT specific properties specified by the user in the properties file. |
private String |
mEndPoint
The end point for the service. |
static String |
MONITOR_KEY
The key name that denotes to monitor the request. |
private static String |
OPTIONS_DELIMITER
The options delimiter that is prepended before all the options. |
static String |
PARALLEL_KEY
The key name that denotes the number of parallel sockets to use for each transfer. |
static String |
PROPERTIES_PREFIX
The prefix for all the properties this mode requires. |
static String |
SUBMIT_KEY
The key name that denotes to start a RFT service. |
static String |
TCP_BUFFER_SIZE_KEY
The key name that denotes the TCP buffer size in bytes. |
static String |
TRANSFER_FILE_KEY
The key name that points to the transfer file that is containing the source and destination urls. |
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. |
static String |
VERBOSE_KEY
The key name that denotes whether to do verbose or not. |
| 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 | |
|---|---|
CRFT(PegasusProperties properties,
PlannerOptions options)
The overloaded constructor, that is called by the Factory to load the class. |
|
| Method Summary | |
|---|---|
boolean |
addSetXBitJobs(String computeJobName,
String txJobName,
Collection execFiles,
int transferClass)
Adds the dirmanager job to the workflow, that do a chmod on the executable files that are being staged. |
private String |
construct(String option,
String value)
A helper method to generate a required argument option for the client. |
TransferJob |
createTransferJob(SubInfo job,
Collection files,
Collection execFiles,
String txJobName,
int jobClass)
Calls out to the super class method to create the main structure of the 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)
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. |
protected List |
getEnvironmentVariables(String site)
Returns the environment profiles that are required for the default entry to sensibly work. |
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. |
protected void |
writeJumboStdIn(FileWriter writer,
Collection files)
Writes to a file on the submit host, that is passed to the rft-client as input. |
| Methods inherited from class org.griphyn.cPlanner.transfer.implementation.AbstractMultipleFTPerXFERJob |
|---|
defaultTCEntry, postProcess, prepareSTDIN |
| 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 |
|---|
public static final String TRANSFORMATION_NAMESPACE
public static final String TRANSFORMATION_NAME
public static final String TRANSFORMATION_VERSION
public static final String DERIVATION_NAMESPACE
public static final String DERIVATION_NAME
public static final String DERIVATION_VERSION
public static final String DESCRIPTION
public static final String PROPERTIES_PREFIX
public static final String END_POINT_KEY
public static final String CREATE_KEY
public static final String SUBMIT_KEY
public static final String MONITOR_KEY
public static final String TCP_BUFFER_SIZE_KEY
public static final String VERBOSE_KEY
public static final String CONCURRENT_KEY
public static final String PARALLEL_KEY
public static final String TRANSFER_FILE_KEY
private static final String OPTIONS_DELIMITER
private String mEndPoint
private Properties mCRFTProps
| Constructor Detail |
|---|
public CRFT(PegasusProperties properties,
PlannerOptions options)
properties - the properties object.options - the options passed to the Planner.| Method Detail |
|---|
public TransferJob createTransferJob(SubInfo job,
Collection files,
Collection execFiles,
String txJobName,
int jobClass)
createTransferJob in interface ImplementationcreateTransferJob in class AbstractMultipleFTPerXFERJobjob - 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.files - 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
protected List getEnvironmentVariables(String site)
getEnvironmentVariables in class AbstractMultipleFTPerXFERJobsite - the site where the job is going to run.
public boolean useThirdPartyTransferAlways()
PegasusProperties.getThirdPartySites(String)public boolean doesPreserveXBit()
public boolean addSetXBitJobs(String computeJobName,
String txJobName,
Collection execFiles,
int transferClass)
computeJobName - the name pf the computeJob for which the files are
being staged.txJobName - the name of the transfer job that is staging the files.execFiles - the executable files that are being staged.transferClass - the class of transfer job
protected String generateArgumentString(TransferJob job)
generateArgumentString in class AbstractMultipleFTPerXFERJobjob - the object containing the transfer node.
protected void writeJumboStdIn(FileWriter writer,
Collection files)
throws Exception
writeJumboStdIn in class AbstractMultipleFTPerXFERJobwriter - the writer to the stdin file.files - Collection of FileTransfer objects containing
the information about sourceam fin and destURL's.
Exceptionpublic String getDescription()
public TransformationCatalogEntry getTransformationCatalogEntry(String siteHandle)
siteHandle - the handle of the site where the transformation is
to be searched.
protected String getDerivationNamespace()
getDerivationNamespace in class AbstractMultipleFTPerXFERJobprotected String getDerivationName()
getDerivationName in class AbstractMultipleFTPerXFERJobprotected String getDerivationVersion()
getDerivationVersion in class AbstractMultipleFTPerXFERJobprotected String getCompleteTCName()
getCompleteTCName in class AbstractMultipleFTPerXFERJob
private String construct(String option,
String value)
option - the long version of the option.value - the value for the option
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||