org.globus.exec.service.exec
Class JobManagerScript

java.lang.Object
  extended byjava.lang.Thread
      extended byorg.globus.exec.service.exec.JobManagerScript
All Implemented Interfaces:
java.lang.Runnable

public class JobManagerScript
extends java.lang.Thread

Job Manager Perl script processor. Used to execute a GRAM Perl script to process some part of a job request. Callbacks will be issued when a file is completely staged by the script or when the script terminates.


Field Summary
private  ScriptCallback callback
           
private  ScriptCommandEnumeration command
           
(package private) static int COMMAND_SIZE_WITH_SUDO
           
(package private) static int COMMAND_SIZE_WITHOUT_SUDO
           
private  java.lang.String[] commandWithArgs
           
protected static int CUSTOM_ERROR_EXEC_FAILED
           
protected static int CUSTOM_ERROR_MISCONFIGURED_SUDO
           
protected static int CUSTOM_ERROR_UNHANDLED_STDERR
           
private  java.io.File descriptionFile
           
private  boolean done
           
private  java.lang.String[] environment
           
private  int error
           
protected static java.lang.String ERROR
           
protected static java.lang.String FAILURE_DESTINATION
           
protected static java.lang.String FAILURE_MESSAGE
           
protected static java.lang.String FAILURE_SOURCE
           
protected static java.lang.String FAILURE_TYPE
           
private  java.lang.String failureDestination
           
private  java.lang.String failureMessage
           
private  java.lang.String failureSource
           
private  java.lang.String failureType
           
private static java.lang.String GLOBUS_GRIDMAP_AND_EXECUTE
           
private static org.globus.util.I18n i18n
           
protected static java.lang.String JOB_ID
           
protected static java.lang.String JOB_STATE
           
private  java.lang.String jobId
           
private  int jobState
           
(package private) static org.apache.commons.logging.Log logger
           
private  java.lang.Process p
           
protected static java.lang.String REMOTE_IO_FILE
           
private  java.lang.String remoteIoFile
           
protected static java.lang.String SCRATCH_DIR
           
private  java.lang.String scratchDir
           
private static java.lang.String SCRIPT
           
private  java.lang.String scriptStderr
           
protected static java.lang.String STAGED_IN
           
protected static java.lang.String STAGED_IN_SHARED
           
protected static java.lang.String STAGED_OUT
           
private  java.util.List stageInList
           
private  java.util.List stageOutList
           
private  java.lang.String username
           
protected static java.lang.String X509_USER_PROXY
           
private  java.lang.String x509UserProxy
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
JobManagerScript(java.lang.String username, java.lang.String globusLocation, java.lang.String type, ScriptCommandEnumeration command, java.lang.String perlJobDescription, java.lang.String[] environment)
           
 
Method Summary
protected  void addStageInDatum(FilePairType data)
           
protected  void addStageOutDatum(FilePairType data)
           
 ScriptCommandEnumeration getCommand()
           
 int getError()
          Returns the error returned by the Perl script.
 java.lang.String getFailureDestination()
           
 java.lang.String getFailureMessage()
           
 java.lang.String getFailureSource()
           
 java.lang.String getFailureType()
           
 java.lang.String getJobId()
          Returns the jobId returned by the Perl script.
 StateEnumeration getJobState()
          Returns the jobState returned by the Perl script as a StateEnumeration.
 FilePairType getNextStageInDatum()
          Returns a FilePairType returned by the Perl script.
 FilePairType getNextStageOutDatum()
           
 java.lang.String getRemoteIoFile()
           
 java.lang.String getScratchDirectory()
          Returns the scratchDirectory returned by the Perl script.
 java.lang.String getX509UserProxy()
           
 boolean isDone()
          Returns whether the Perl script has finished execution.
 void run()
           
protected  void setDone()
           
 java.lang.String toString()
          Returns printable information about the Perl script execution.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

JOB_STATE

protected static final java.lang.String JOB_STATE
See Also:
Constant Field Values

ERROR

protected static final java.lang.String ERROR
See Also:
Constant Field Values

JOB_ID

protected static final java.lang.String JOB_ID
See Also:
Constant Field Values

SCRATCH_DIR

protected static final java.lang.String SCRATCH_DIR
See Also:
Constant Field Values

STAGED_IN

protected static final java.lang.String STAGED_IN
See Also:
Constant Field Values

STAGED_IN_SHARED

protected static final java.lang.String STAGED_IN_SHARED
See Also:
Constant Field Values

STAGED_OUT

protected static final java.lang.String STAGED_OUT
See Also:
Constant Field Values

X509_USER_PROXY

protected static final java.lang.String X509_USER_PROXY
See Also:
Constant Field Values

REMOTE_IO_FILE

protected static final java.lang.String REMOTE_IO_FILE
See Also:
Constant Field Values

FAILURE_TYPE

protected static final java.lang.String FAILURE_TYPE
See Also:
Constant Field Values

FAILURE_MESSAGE

protected static final java.lang.String FAILURE_MESSAGE
See Also:
Constant Field Values

FAILURE_SOURCE

protected static final java.lang.String FAILURE_SOURCE
See Also:
Constant Field Values

FAILURE_DESTINATION

protected static final java.lang.String FAILURE_DESTINATION
See Also:
Constant Field Values

CUSTOM_ERROR_MISCONFIGURED_SUDO

protected static final int CUSTOM_ERROR_MISCONFIGURED_SUDO
See Also:
Constant Field Values

CUSTOM_ERROR_UNHANDLED_STDERR

protected static final int CUSTOM_ERROR_UNHANDLED_STDERR
See Also:
Constant Field Values

CUSTOM_ERROR_EXEC_FAILED

protected static final int CUSTOM_ERROR_EXEC_FAILED
See Also:
Constant Field Values

COMMAND_SIZE_WITHOUT_SUDO

static final int COMMAND_SIZE_WITHOUT_SUDO
See Also:
Constant Field Values

COMMAND_SIZE_WITH_SUDO

static final int COMMAND_SIZE_WITH_SUDO
See Also:
Constant Field Values

SCRIPT

private static final java.lang.String SCRIPT
See Also:
Constant Field Values

GLOBUS_GRIDMAP_AND_EXECUTE

private static final java.lang.String GLOBUS_GRIDMAP_AND_EXECUTE
See Also:
Constant Field Values

username

private java.lang.String username

descriptionFile

private java.io.File descriptionFile

command

private ScriptCommandEnumeration command

commandWithArgs

private java.lang.String[] commandWithArgs

p

private java.lang.Process p

jobState

private int jobState

error

private int error

jobId

private java.lang.String jobId

scratchDir

private java.lang.String scratchDir

x509UserProxy

private java.lang.String x509UserProxy

remoteIoFile

private java.lang.String remoteIoFile

stageInList

private java.util.List stageInList

stageOutList

private java.util.List stageOutList

failureType

private java.lang.String failureType

failureMessage

private java.lang.String failureMessage

failureSource

private java.lang.String failureSource

failureDestination

private java.lang.String failureDestination

done

private boolean done

callback

private ScriptCallback callback

environment

private java.lang.String[] environment

scriptStderr

private java.lang.String scriptStderr

logger

static org.apache.commons.logging.Log logger

i18n

private static org.globus.util.I18n i18n
Constructor Detail

JobManagerScript

public JobManagerScript(java.lang.String username,
                        java.lang.String globusLocation,
                        java.lang.String type,
                        ScriptCommandEnumeration command,
                        java.lang.String perlJobDescription,
                        java.lang.String[] environment)
                 throws java.io.IOException
Method Detail

run

public void run()

setDone

protected void setDone()

addStageInDatum

protected void addStageInDatum(FilePairType data)

addStageOutDatum

protected void addStageOutDatum(FilePairType data)

getNextStageInDatum

public FilePairType getNextStageInDatum()
Returns a FilePairType returned by the Perl script.

Returns:
The FilePairType returned by the Perl script, or null if none was returned yet. This should to be called multiple times until null is returned and the isDone() returns true.

getNextStageOutDatum

public FilePairType getNextStageOutDatum()

isDone

public boolean isDone()
Returns whether the Perl script has finished execution.

Returns:
true if the script has completed, false otherwise.

getJobState

public StateEnumeration getJobState()
Returns the jobState returned by the Perl script as a StateEnumeration.

Returns:
The jobState returned by the Perl script as a StateEnumeration, or null if none was returned.

getJobId

public java.lang.String getJobId()
Returns the jobId returned by the Perl script.

Returns:
The jobId returned by the Perl script, or null if none was returned.

getCommand

public ScriptCommandEnumeration getCommand()

getError

public int getError()
Returns the error returned by the Perl script.

Returns:
The error returned by the Perl script, or null if none was returned.

getScratchDirectory

public java.lang.String getScratchDirectory()
Returns the scratchDirectory returned by the Perl script.

Returns:
The scratchDirectory returned by the Perl script, or null if none was returned.

getX509UserProxy

public java.lang.String getX509UserProxy()

getRemoteIoFile

public java.lang.String getRemoteIoFile()

getFailureType

public java.lang.String getFailureType()

getFailureMessage

public java.lang.String getFailureMessage()

getFailureSource

public java.lang.String getFailureSource()

getFailureDestination

public java.lang.String getFailureDestination()

toString

public java.lang.String toString()
Returns printable information about the Perl script execution. Returns a string containing the printable infromation about the thread that the script output reader is running in as well as the values which may have been returned by the script.