Interface GridStart

  • All Known Implementing Classes:
    Kickstart, NoGridStart, PegasusLite

    public interface GridStart
    The interface that defines how a job specified in the abstract workflow is launched on the grid. This allows to specify different ways to wrap an executable while running on the grid. One may do this, to gather additional information about the job like provenance information. If the implementation returns true for canSetXBit, then it should be setting the X bit for the staged compute jobs.
    Version:
    $Revision$
    Author:
    Karan Vahi vahi@isi.edu
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static char mSeparator
      The File separator to be used on the submit host.
      static java.lang.String VERSION
      The version number associated with this API of GridStart.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean canSetXBit()
      Indicates whether the enabling mechanism can set the X bit on the executable on the remote grid site, in addition to launching it on the remote grid stie
      java.lang.String defaultPOSTScript()
      Returns the SHORT_NAME for the POSTScript implementation that is used to be as default with this GridStart implementation.
      boolean enable​(AggregatedJob job, boolean isGlobusJob)
      Enables a job to run on the grid.
      boolean enable​(Job job, boolean isGlobusJob)
      Enables a job to run on the grid.
      java.lang.String getVDSKeyValue()
      Returns the value of the vds profile with key as VDS.GRIDSTART_KEY, that would result in the loading of this particular implementation.
      java.lang.String getWorkerNodeDirectory​(Job job)
      Returns the directory in which the job executes on the worker node.
      void initialize​(PegasusBag bag, ADag dag)
      Initializes the GridStart implementation.
      java.lang.String shortDescribe()
      Returns a short textual description of the implementing class.
      void useFullPathToGridStarts​(boolean fullPath)
      Setter method to control whether a full path to Gridstart should be returned while wrapping a job or not.
    • Field Detail

      • VERSION

        static final java.lang.String VERSION
        The version number associated with this API of GridStart.
        See Also:
        Constant Field Values
      • mSeparator

        static final char mSeparator
        The File separator to be used on the submit host.
    • Method Detail

      • initialize

        void initialize​(PegasusBag bag,
                        ADag dag)
        Initializes the GridStart implementation.
        Parameters:
        bag - the bag of objects that is used for initialization.
        dag - the concrete dag so far.
      • enable

        boolean enable​(AggregatedJob job,
                       boolean isGlobusJob)
        Enables a job to run on the grid. This also determines how the stdin,stderr and stdout of the job are to be propogated. To grid enable a job, the job may need to be wrapped into another job, that actually launches the job. It usually results in the job description passed being modified modified.
        Parameters:
        job - the Job object containing the job description of the job that has to be enabled on the grid.
        isGlobusJob - is true, if the job generated a line universe = globus, and thus runs remotely. Set to false, if the job runs on the submit host in any way.
        Returns:
        boolean true if enabling was successful,else false.
      • enable

        boolean enable​(Job job,
                       boolean isGlobusJob)
        Enables a job to run on the grid. This also determines how the stdin,stderr and stdout of the job are to be propogated. To grid enable a job, the job may need to be wrapped into another job, that actually launches the job. It usually results in the job description passed being modified modified.
        Parameters:
        job - the Job object containing the job description of the job that has to be enabled on the grid.
        isGlobusJob - is true, if the job generated a line universe = globus, and thus runs remotely. Set to false, if the job runs on the submit host in any way.
        Returns:
        boolean true if enabling was successful,else false.
      • useFullPathToGridStarts

        void useFullPathToGridStarts​(boolean fullPath)
        Setter method to control whether a full path to Gridstart should be returned while wrapping a job or not.
        Parameters:
        fullPath - if set to true, indicates that full path would be used.
      • canSetXBit

        boolean canSetXBit()
        Indicates whether the enabling mechanism can set the X bit on the executable on the remote grid site, in addition to launching it on the remote grid stie
        Returns:
        boolean indicating whether can set the X bit or not.
      • getWorkerNodeDirectory

        java.lang.String getWorkerNodeDirectory​(Job job)
        Returns the directory in which the job executes on the worker node.
        Parameters:
        job -
        Returns:
        the full path to the directory where the job executes
      • getVDSKeyValue

        java.lang.String getVDSKeyValue()
        Returns the value of the vds profile with key as VDS.GRIDSTART_KEY, that would result in the loading of this particular implementation. It is usually the name of the implementing class without the package name.
        Returns:
        the value of the profile key.
        See Also:
        org.griphyn.cPlanner.namespace.VDS#GRIDSTART_KEY
      • shortDescribe

        java.lang.String shortDescribe()
        Returns a short textual description of the implementing class. Should usually be the name of the implementing class.
        Returns:
        short textual description.
      • defaultPOSTScript

        java.lang.String defaultPOSTScript()
        Returns the SHORT_NAME for the POSTScript implementation that is used to be as default with this GridStart implementation.
        Returns:
        the id for the POSTScript.
        See Also:
        POSTScript.shortDescribe()