public class DataGridTransfer extends TypedAtomicActor
DataGridTransfer is a Kepler Actor which has a functionality similar to the SRB/IRODS commands, namely Sget, Sput, iget, and iput. DataGridTransfer copies one or more objects to/from a remote filesystem into the local file system. The following actor expects as input a reference to local or remote file systems support by the Jargon API. This reference connection is created from the source and destination URL values, Currently available filesystem URLs are, file:///myDir/myfile.txt, irods://username:password@myhost.org:1247/myDir/myfile.txt, srb://username.domain:password@myhost.org:5544/myDir/myfile.txt, or ftp and http urls.
Currently, the source and destination filesystems can not be changed once the workflow is running. The filepaths can be changed.
The file reference system is created with a unique user account and with this connection reference as input the DataGridTransfer actor is able to gain access to various files on the file systems. Once an alive DataGridTransfer file connection system has been established the actor gets the destination directory and the source files to establish the DataGridTransfer file path. If the DataGridTransfer destination directory doesn't exist, a new directory is created. Once the DataGridTransfer files path are determined, the files are copied from the source file space to the local drive. In case the above process of parallel copy fails, a streaming copy process is carried out with random access streams where the file is downloaded as a sequence of byte arrays.
There is a parameter to overwrite existing files.
Actor Input: Accepts a reference to the the files systems, and two arrays of URL file paths.
Actor Output: Outputs the destination file paths and an exit status. The exit status gives a message of "success" or appropriate error to indicate the status of file get process.
The following actor uses the Dice Research Jargon API provided. Further information on SRB Further information on IRODS
Entity.ContainedObjectsIterator
Modifier and Type | Field and Description |
---|---|
TypedIOPort |
destination
Where to put the files on the destination drive.
|
TypedIOPort |
exitCode
Exit status of the operation.
|
TypedIOPort |
fetchedFiles
Paths to the destination
|
Parameter |
overwriteParameter
Overwrite when file is copied
|
TypedIOPort |
source
Paths to the files to fetch
|
_typesValid
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
COMPLETED, NOT_READY, STOP_ITERATING
Constructor and Description |
---|
DataGridTransfer(CompositeEntity container,
java.lang.String name)
Construct a constant source with the given container and name.
|
Modifier and Type | Method and Description |
---|---|
void |
fire()
Transfer the file or directory,
from the source URL to the destination URL.
|
void |
initialize()
Initialize the source file system to null.
|
boolean |
postfire()
Post fire the actor.
|
void |
wrapup()
Reset the _refire variable and disconnect
|
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
isFireFunctional, isStrict, iterate, prefire, stop, stopFire, terminate
addInitializable, preinitialize, removeInitializable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
getDerivedLevel, getDerivedList, propagateValue
public TypedIOPort source
public TypedIOPort fetchedFiles
public TypedIOPort exitCode
public TypedIOPort destination
public Parameter overwriteParameter
public DataGridTransfer(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container
- The container.name
- The name of this actor.IllegalActionException
- If the entity cannot be contained
by the proposed container.NameDuplicationException
- If the container already has an
actor with this name.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor<TypedIOPort>
IllegalActionException
- If it is thrown if the
file cannot be accessed.public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor<TypedIOPort>
IllegalActionException
- If a derived class throws it.public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class AtomicActor<TypedIOPort>
IllegalActionException
- Not thrown in this base class.public void wrapup()
wrapup
in interface Initializable
wrapup
in class AtomicActor<TypedIOPort>