| java.lang.Object org.griphyn.cPlanner.transfer.implementation.Abstract org.griphyn.cPlanner.transfer.implementation.AbstractMultipleFTPerXFERJob org.griphyn.cPlanner.transfer.implementation.RFT
RFT | public class RFT extends AbstractMultipleFTPerXFERJob (Code) | | The implementation that creates transfer jobs referring to the rft-client
distributed with GT4 to do transfers between various sites.
The rft-client connects to a RFT service running on a particular host.
The rft client is always invoked on the submit host. Hence there should be an
entry in the transformation catalog for logical transformation
rft 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 rft client by specifying the properties
in the properties files with the prefix vds.transfer.rft .
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.
property | default value | description |
host |
localhost |
the host-ip of the container. |
port |
8080 |
the port at which the container is running. |
binary |
true |
whether to do transfers in binary mode or not. |
bs |
16000 |
block size in bytes that is transferred. |
tcpbs |
16000 |
specifies the size (in bytes) of the TCP buffer to be used by the
underlying ftp data channels |
notpt |
false |
whether to do normal transfers or not. |
streams |
1 |
specifies the number of parallel data connections that should be used. |
DCAU |
true |
data channel authentication for ftp transfers. |
processes |
1 |
number of files that you want to transfer at any given point |
retry |
3 |
number of times RFT retries a transfer failed with a non-fatal error. |
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 RFT.
There should be an entry in the transformation catalog with the fully qualified
name as globus::rft for all the sites where workflow is run,
or on the local site in case of third party transfers.
author: Karan Vahi version: $Revision: 145 $ |
Field Summary | |
final public static String | BINARY_KEY The key name that denotes whether to do the transfers in binary mode or not. | final public static String | BLOCK_SIZE_KEY The key name that denotes the block size in bytes that is to be
transferred. | final public static String | DCAU_KEY The key name that denotes whether to use Data Channel Authentication or not. | final public static String | DERIVATION_NAME The name of the underlying derivation. | final public static String | DERIVATION_NAMESPACE The derivation namespace for for the transfer job. | final public static String | DERIVATION_VERSION The derivation version number for the transfer job. | final public static String | DESCRIPTION A short description of the transfer implementation. | final public static String | HOST_KEY The key name that denotes the host on which the RFT service is running. | final public static String | NO_TPT_KEY The key name that denotes whether to use TPT (third party transfer) or not. | final public static String | PORT_KEY The key name that denotes the port on which the RFT service is running. | final public static String | PROCESSES_KEY The key name that denotes the number of files to be transferred at any
given time. | final public static String | PROPERTIES_PREFIX The prefix for all the properties this mode requires. | final public static String | RETRY_KEY The key name that denotes the maximum number of retries that are made
in case of failure. | final public static String | STREAMS_KEY The key name that denotes the number of parallel streams to be used. | final public static String | TCP_BUFFER_SIZE_KEY The key name that denotes the TCP buffer size in bytes. | final public static String | TRANSFORMATION_NAME The name of the underlying transformation that is queried for in the
Transformation Catalog. | final public static String | TRANSFORMATION_NAMESPACE The transformation namespace for the transfer job. | final public static String | TRANSFORMATION_VERSION The version number for the transfer job. |
Method Summary | |
public 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. | public 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. | public 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. | public TransformationCatalogEntry | getTransformationCatalogEntry(String siteHandle) Retrieves the transformation catalog entry for the executable that is
being used to transfer the files in the implementation.
Parameters: siteHandle - the handle of the site where the transformation isto be searched. | public void | postProcess(TransferJob job) Resets the STDIN of the transfer job to null, as the
input file is not being sent to the remote sides. | public 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. |
BINARY_KEY | final public static String BINARY_KEY(Code) | | The key name that denotes whether to do the transfers in binary mode or not.
|
BLOCK_SIZE_KEY | final public static String BLOCK_SIZE_KEY(Code) | | The key name that denotes the block size in bytes that is to be
transferred.
|
DCAU_KEY | final public static String DCAU_KEY(Code) | | The key name that denotes whether to use Data Channel Authentication or not.
|
DERIVATION_NAME | final public static String DERIVATION_NAME(Code) | | The name of the underlying derivation.
|
DERIVATION_NAMESPACE | final public static String DERIVATION_NAMESPACE(Code) | | The derivation namespace for for the transfer job.
|
DERIVATION_VERSION | final public static String DERIVATION_VERSION(Code) | | The derivation version number for the transfer job.
|
DESCRIPTION | final public static String DESCRIPTION(Code) | | A short description of the transfer implementation.
|
HOST_KEY | final public static String HOST_KEY(Code) | | The key name that denotes the host on which the RFT service is running.
|
NO_TPT_KEY | final public static String NO_TPT_KEY(Code) | | The key name that denotes whether to use TPT (third party transfer) or not.
|
PORT_KEY | final public static String PORT_KEY(Code) | | The key name that denotes the port on which the RFT service is running.
|
PROCESSES_KEY | final public static String PROCESSES_KEY(Code) | | The key name that denotes the number of files to be transferred at any
given time.
|
PROPERTIES_PREFIX | final public static String PROPERTIES_PREFIX(Code) | | The prefix for all the properties this mode requires.
|
RETRY_KEY | final public static String RETRY_KEY(Code) | | The key name that denotes the maximum number of retries that are made
in case of failure.
|
STREAMS_KEY | final public static String STREAMS_KEY(Code) | | The key name that denotes the number of parallel streams to be used.
|
TCP_BUFFER_SIZE_KEY | final public static String TCP_BUFFER_SIZE_KEY(Code) | | The key name that denotes the TCP buffer size in bytes.
|
TRANSFORMATION_NAME | final public static String TRANSFORMATION_NAME(Code) | | The name of the underlying transformation that is queried for in the
Transformation Catalog.
|
TRANSFORMATION_NAMESPACE | final public static String TRANSFORMATION_NAMESPACE(Code) | | The transformation namespace for the transfer job.
|
TRANSFORMATION_VERSION | final public static String TRANSFORMATION_VERSION(Code) | | The version number for the transfer job.
|
RFT | public RFT(PegasusProperties properties, PlannerOptions options)(Code) | | The overloaded constructor, that is called by the Factory to load the
class.
Parameters: properties - the properties object. Parameters: options - the options passed to the Planner. |
addSetXBitJobs | public boolean addSetXBitJobs(String computeJobName, String txJobName, Collection execFiles, int transferClass)(Code) | | Adds the dirmanager job to the workflow, that do a chmod on the executable
files that are being staged. It is empty as RFT preserves X bit permission
while staging files.
Parameters: computeJobName - the name pf the computeJob for which the files arebeing staged. Parameters: txJobName - the name of the transfer job that is staging the files. Parameters: execFiles - the executable files that are being staged. Parameters: transferClass - the class of transfer job boolean indicating whether any XBitJobs were succesfully added ornot. |
doesPreserveXBit | public boolean doesPreserveXBit()(Code) | | Returns a boolean indicating whether the transfer protocol being used by
the implementation preserves the X Bit or not while staging.
boolean |
generateArgumentString | protected String generateArgumentString(TransferJob job)(Code) | | Constructs the arguments to the transfer executable that need to be
passed to the executable referred to in this transfer mode. Since the
rft client is run on the submit host, the path to the input file
to the rft client is given, instead of passing it through condor
files.
Parameters: job - the object containing the transfer node. the argument string |
getCompleteTCName | protected String getCompleteTCName()(Code) | | Returns the complete name for the transformation.
the complete name. |
getDerivationName | protected String getDerivationName()(Code) | | Returns the logical name of the derivation that this implementation
refers to.
the name of the derivation. |
getDerivationNamespace | protected String getDerivationNamespace()(Code) | | Returns the namespace of the derivation that this implementation
refers to.
the namespace of the derivation. |
getDerivationVersion | protected String getDerivationVersion()(Code) | | Returns the version of the derivation that this implementation
refers to.
the version of the derivation. |
getDescription | public String getDescription()(Code) | | Returns a textual description of the transfer implementation.
a short textual description |
getEnvironmentVariables | protected List getEnvironmentVariables(String site)(Code) | | Returns the environment profiles that are required for the default
entry to sensibly work. Returns an empty list.
Parameters: site - the site where the job is going to run. List of environment variables, else null in case where therequired environment variables could not be found. |
getTransformationCatalogEntry | public TransformationCatalogEntry getTransformationCatalogEntry(String siteHandle)(Code) | | Retrieves the transformation catalog entry for the executable that is
being used to transfer the files in the implementation.
Parameters: siteHandle - the handle of the site where the transformation isto be searched. the transformation catalog entry if found, else null. |
postProcess | public void postProcess(TransferJob job)(Code) | | Resets the STDIN of the transfer job to null, as the
input file is not being sent to the remote sides. There should be a
generic function prepareIPFile to do this.
|
useThirdPartyTransferAlways | public boolean useThirdPartyTransferAlways()(Code) | | Return a boolean indicating whether the transfers to be done always in
a third party transfer mode. This always returns true, indicating
transfers can only be done in a third party transfer mode.
true |
writeJumboStdIn | protected void writeJumboStdIn(FileWriter writer, Collection files) throws Exception(Code) | | Writes to a file on the submit host, that is passed to the rft-client
as input. The rft-client is always run on the submit host, and hence
can access the file.
Parameters: writer - the writer to the stdin file. Parameters: files - Collection of FileTransfer objects containingthe information about sourceam fin and destURL's. |
Methods inherited from org.griphyn.cPlanner.transfer.implementation.Abstract | protected boolean addSetXBitJobs(SubInfo computeJob, SubInfo txJob, Collection execFiles)(Code)(Java Doc) public boolean addSetXBitJobs(SubInfo computeJob, String txJobName, Collection execFiles, int transferClass)(Code)(Java Doc) public boolean addSetXBitJobs(SubInfo computeJob, String txJobName, Collection execFiles, int transferClass, int xbitIndex)(Code)(Java Doc) public void applyPriority(TransferJob job)(Code)(Java Doc) public boolean checkAndTransferProxy(TransferJob job)(Code)(Java Doc) protected void construct(SubInfo job, String key, String value)(Code)(Java Doc) public SubInfo createNoOPJob(String name)(Code)(Java Doc) protected SubInfo createSetXBitJob(FileTransfer file, String name)(Code)(Java Doc) protected Set determineDisabledChmodSites(String sites)(Code)(Java Doc) protected boolean disableChmodJobCreation(String site)(Code)(Java Doc) public String getNOOPJobName(String name, int counter)(Code)(Java Doc) protected String getPathToUserProxy()(Code)(Java Doc) protected String getPriority(TransferJob job)(Code)(Java Doc) public String getSetXBitJobName(String name, int counter)(Code)(Java Doc) public void setRefiner(Refiner refiner)(Code)(Java Doc)
|
|
|