public class GUC extends AbstractMultipleFTPerXFERJob
In order to use the transfer implementation implemented by this class,
- the property pegasus.transfer.*.impl must be set to value GUC.
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
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DERIVATION_NAME
The name of the underlying derivation.
|
static java.lang.String |
DERIVATION_NAMESPACE
The derivation namespace for for the transfer job.
|
static java.lang.String |
DERIVATION_VERSION
The derivation version number for the transfer job.
|
static java.lang.String |
DESCRIPTION
A short description of the transfer implementation.
|
protected java.lang.String |
mNumOfTXStreams
The number of streams that each g-u-c process opens to do the ftp transfer.
|
protected boolean |
mUseForce
Whether to use force option for the transfer executable or not.
|
static java.lang.String |
TRANSFORMATION_NAME
The name of the underlying transformation that is queried for in the
Transformation Catalog.
|
static java.lang.String |
TRANSFORMATION_NAMESPACE
The transformation namespace for the transfer job.
|
static java.lang.String |
TRANSFORMATION_VERSION
The version number for the transfer job.
|
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
TRANSFER_UNIVERSE, VERSION
Constructor and Description |
---|
GUC(PegasusBag bag)
The overloaded constructor, that is called by the Factory to load the
class.
|
Modifier and Type | Method and Description |
---|---|
protected TransformationCatalogEntry |
defaultTCEntry(java.lang.String namespace,
java.lang.String name,
java.lang.String version,
java.lang.String site)
Returns a default TC entry to be used in case entry is not found in the
transformation catalog.
|
boolean |
doesPreserveXBit()
Returns a boolean indicating whether the transfer protocol being used by
the implementation preserves the X Bit or not while staging.
|
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.
|
protected java.lang.String |
getCompleteTCName()
Returns the complete name for the transformation.
|
protected java.lang.String |
getDerivationName()
Returns the logical name of the derivation that this implementation
refers to.
|
protected java.lang.String |
getDerivationNamespace()
Returns the namespace of the derivation that this implementation
refers to.
|
protected java.lang.String |
getDerivationVersion()
Returns the version of the derivation that this implementation
refers to.
|
java.lang.String |
getDescription()
Returns a textual description of the transfer implementation.
|
protected java.util.List |
getEnvironmentVariables(java.lang.String site)
Returns the environment profiles that are required for the default
entry to sensibly work.
|
TransformationCatalogEntry |
getTransformationCatalogEntry(java.lang.String siteHandle,
int jobClass)
Retrieves the transformation catalog entry for the executable that is
being used to transfer the files in the implementation.
|
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.
|
protected void |
writeStdInAndAssociateCredentials(TransferJob job,
java.io.FileWriter writer,
java.util.Collection files,
java.lang.String stagingSite,
int jobClass)
Writes to a FileWriter stream the stdin which goes into the magic script
via standard input
|
createTransferJob, defaultTCEntry, prepareSTDINAndAssociateCredentials
addSetXBitJobs, addSetXBitJobs, addSetXBitJobs, applyPriority, checkAndTransferIrodsEnvFile, checkAndTransferProxy, construct, createNoOPJob, createSetXBitJob, createSetXBitJob, createSetXBitJob, determineDisabledChmodSites, disableChmodJobCreation, getNOOPJobName, getPriority, getSetXBitJobName, setRefiner
public static final java.lang.String TRANSFORMATION_NAMESPACE
public static final java.lang.String TRANSFORMATION_NAME
public static final java.lang.String TRANSFORMATION_VERSION
public static final java.lang.String DERIVATION_NAMESPACE
public static final java.lang.String DERIVATION_NAME
public static final java.lang.String DERIVATION_VERSION
public static final java.lang.String DESCRIPTION
protected java.lang.String mNumOfTXStreams
protected boolean mUseForce
public GUC(PegasusBag bag)
bag
- the bag of Pegasus initialization objects.public boolean useThirdPartyTransferAlways()
A value of false does not preclude third party transfers. They still can be done, by setting the property "pegasus.transfer.*.thirdparty.sites".
PegasusProperties.getThirdPartySites(String)
public boolean doesPreserveXBit()
public java.lang.String getDescription()
public TransformationCatalogEntry getTransformationCatalogEntry(java.lang.String siteHandle, int jobClass)
siteHandle
- the handle of the site where the transformation is
to be searched.jobClass
- the job Class for the newly added job. Can be one of the
following:
stage-in
stage-out
inter-pool transfer
stage-in worker transferprotected TransformationCatalogEntry defaultTCEntry(java.lang.String namespace, java.lang.String name, java.lang.String version, java.lang.String site)
namespace
- the namespace of the transfer transformationname
- the logical name of the transfer transformationversion
- the version of the transfer transformationsite
- the site for which the default entry is required.protected java.util.List getEnvironmentVariables(java.lang.String site)
getEnvironmentVariables
in class AbstractMultipleFTPerXFERJob
site
- the site where the job is going to run.protected java.lang.String getDerivationNamespace()
getDerivationNamespace
in class AbstractMultipleFTPerXFERJob
protected java.lang.String getDerivationName()
getDerivationName
in class AbstractMultipleFTPerXFERJob
protected java.lang.String getDerivationVersion()
getDerivationVersion
in class AbstractMultipleFTPerXFERJob
protected java.lang.String generateArgumentString(TransferJob job)
generateArgumentString
in class AbstractMultipleFTPerXFERJob
job
- the object containing the transfer node.public void postProcess(TransferJob job)
postProcess
in class AbstractMultipleFTPerXFERJob
job
- the TransferJob
that has been created.protected void writeStdInAndAssociateCredentials(TransferJob job, java.io.FileWriter writer, java.util.Collection files, java.lang.String stagingSite, int jobClass) throws java.lang.Exception
writeStdInAndAssociateCredentials
in class AbstractMultipleFTPerXFERJob
job
- the transfer job.writer
- the writer to the stdin file.files
- Collection of FileTransfer
objects containing
the information about sourceam fin and destURL's.stagingSite
- the site where the data will be populated by first
level staging jobs.jobClass
- the job Class for the newly added job. Can be one of the
following:
stage-in
stage-out
inter-pool transferjava.lang.Exception
protected java.lang.String getCompleteTCName()
getCompleteTCName
in class AbstractMultipleFTPerXFERJob