edu.isi.pegasus.planner.transfer.implementation

## Class TPTGUC

- java.lang.Object
- - edu.isi.pegasus.planner.transfer.implementation.Abstract
  - - edu.isi.pegasus.planner.transfer.implementation.AbstractMultipleFTPerXFERJob
    - - edu.isi.pegasus.planner.transfer.implementation.GUC
      - - edu.isi.pegasus.planner.transfer.implementation.TPTGUC

All Implemented Interfaces:
  Implementation, MultipleFTPerXFERJob

    public class TPTGUC
    extends GUC

The implementation that is used to create transfer jobs that callout to the new globus-url-copy client, that support multiple file transfers

In order to use the transfer implementation implemented by this class,

            - the property pegasus.transfer.*.impl must be set to value TPTGUC.

There should be an entry in the transformation catalog with the fully qualified name as `globus::guc` for all the sites where workflow is run, or on the local site in case of third party transfers. Pegasus can automatically construct the path to the globus-url-copy client, if the environment variable GLOBUS_LOCATION is specified in the site catalog for the site.

The arguments with which the client is invoked can be specified

           - by specifying the property pegasus.transfer.arguments
           - associating the Pegasus profile key transfer.arguments

Version:
  $Revision$
Author:
  Karan Vahi

### Field Summary

### Fields inherited from class edu.isi.pegasus.planner.transfer.implementation.GUC

`DERIVATION_NAME, DERIVATION_NAMESPACE, DERIVATION_VERSION, DESCRIPTION, mNumOfTXStreams, mUseForce, TRANSFORMATION_NAME, TRANSFORMATION_NAMESPACE, TRANSFORMATION_VERSION`

### Fields inherited from class edu.isi.pegasus.planner.transfer.implementation.Abstract

`CHANGE_XBIT_TRANSFORMATION, mAddNodesForSettingXBit, mChmodDisabledForAllSites, mDisabledChmodSites, mLocalIrodsEnv, mLocalIrodsEnvBasename, mLocalS3cfg, mLocalS3cfgBasename, mLocalUserProxy, mLocalUserProxyBasename, mLogger, mPOptions, mProps, mRefiner, mSiteStore, mTCHandle, NOOP_PREFIX, SET_XBIT_PREFIX, XBIT_DERIVATION_NS, XBIT_DERIVATION_VERSION, XBIT_EXECUTABLE_BASENAME, XBIT_TRANSFORMATION_NS, XBIT_TRANSFORMATION_VERSION`

### Fields inherited from interface edu.isi.pegasus.planner.transfer.Implementation

`TRANSFER_UNIVERSE, VERSION`

### Constructor Summary

Constructors
Constructor and Description
`TPTGUC(PegasusBag bag)` The overloaded constructor, that is called by the Factory to load the class.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected java.lang.String` `generateArgumentString(TransferJob job)` It constructs the arguments to the transfer executable that need to be passed to the executable referred to in this transfer mode.
`void` `postProcess(TransferJob job)` Makes sure the stdin is transferred by the Condor File Transfer Mechanism.
`boolean` `useThirdPartyTransferAlways()` Return a boolean indicating whether the transfers to be done always in a third party transfer mode.

### Methods inherited from class edu.isi.pegasus.planner.transfer.implementation.GUC

`defaultTCEntry, doesPreserveXBit, getCompleteTCName, getDerivationName, getDerivationNamespace, getDerivationVersion, getDescription, getEnvironmentVariables, getTransformationCatalogEntry, writeStdInAndAssociateCredentials`

### Methods inherited from class edu.isi.pegasus.planner.transfer.implementation.AbstractMultipleFTPerXFERJob

`createTransferJob, defaultTCEntry, prepareSTDINAndAssociateCredentials`

### Methods inherited from class edu.isi.pegasus.planner.transfer.implementation.Abstract

`addSetXBitJobs, addSetXBitJobs, addSetXBitJobs, applyPriority, checkAndTransferIrodsEnvFile, checkAndTransferProxy, construct, createNoOPJob, createSetXBitJob, createSetXBitJob, createSetXBitJob, determineDisabledChmodSites, disableChmodJobCreation, getNOOPJobName, getPriority, getSetXBitJobName, setRefiner`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### TPTGUC

    public TPTGUC(PegasusBag bag)

The overloaded constructor, that is called by the Factory to load the class.

Parameters:
  `bag` - the bag of Pegasus initialization objects.

### 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 "pegasus.transfer.*.thirdparty.sites".

Specified by:
  `useThirdPartyTransferAlways` in interface `Implementation`
Overrides:
  `useThirdPartyTransferAlways` in class `GUC`
Returns:
  true always
See Also:
  `PegasusProperties.getThirdPartySites(String)`

#### generateArgumentString

    protected java.lang.String generateArgumentString(TransferJob job)

It constructs the arguments to the transfer executable that need to be passed to the executable referred to in this transfer mode.

Overrides:
  `generateArgumentString` in class `GUC`
Parameters:
  `job` - the object containing the transfer node.
Returns:
  the argument string

#### postProcess

    public void postProcess(TransferJob job)

Makes sure the stdin is transferred by the Condor File Transfer Mechanism. In addition, the stdin is set to null, after the file has been marked for transfer by Condor File Transfer Mechanism.

Overrides:
  `postProcess` in class `GUC`
Parameters:
  `job` - the `TransferJob` that has been created.