extensions/net.sf.basedb.opengrid/trunk/src/net/sf/basedb/opengrid/engine/ClusterEngine.java

Code
Comments
Other
Rev Date Author Line
5981 07 Jul 20 nicklas 1 package net.sf.basedb.opengrid.engine;
5981 07 Jul 20 nicklas 2
5982 07 Jul 20 nicklas 3
5984 10 Jul 20 nicklas 4 import net.sf.basedb.opengrid.CmdResult;
5982 07 Jul 20 nicklas 5 import net.sf.basedb.opengrid.JobDefinition;
5984 10 Jul 20 nicklas 6 import net.sf.basedb.opengrid.JobIdentifier;
5984 10 Jul 20 nicklas 7 import net.sf.basedb.opengrid.JobStatus;
5984 10 Jul 20 nicklas 8 import net.sf.basedb.opengrid.OpenGridSession;
5981 07 Jul 20 nicklas 9 import net.sf.basedb.opengrid.config.ClusterConfig;
5981 07 Jul 20 nicklas 10
5981 07 Jul 20 nicklas 11 /**
5981 07 Jul 20 nicklas 12   Internal interface to be implemented once for each type
5981 07 Jul 20 nicklas 13   of cluster. The engine implements common functionality that
5981 07 Jul 20 nicklas 14   is different for each type of cluster.
5981 07 Jul 20 nicklas 15   
5981 07 Jul 20 nicklas 16   @author nicklas
5981 07 Jul 20 nicklas 17   @since 1.4
5981 07 Jul 20 nicklas 18 */
5981 07 Jul 20 nicklas 19 public interface ClusterEngine 
5981 07 Jul 20 nicklas 20 {
5981 07 Jul 20 nicklas 21   /**
5981 07 Jul 20 nicklas 22     Set default configuration parameters on the given 
5981 07 Jul 20 nicklas 23     configuration object. It is expected that the 
5981 07 Jul 20 nicklas 24     {@link ClusterConfig#getType()} is a type that is compatible
5981 07 Jul 20 nicklas 25     with the engine implementation.
5981 07 Jul 20 nicklas 26   */
5981 07 Jul 20 nicklas 27   public void setDefaultConfig(ClusterConfig config);
5982 07 Jul 20 nicklas 28
5981 07 Jul 20 nicklas 29   
5982 07 Jul 20 nicklas 30   /**
5982 07 Jul 20 nicklas 31     Create a job submission for executing a job on the cluster.
5982 07 Jul 20 nicklas 32
6614 28 Feb 22 nicklas 33     @param session A connected session that can be used to execute commands on the cluster
5982 07 Jul 20 nicklas 34     @param job Information about the job
5982 07 Jul 20 nicklas 35     @param workFolder The work folder where files needed for the job are stored
5982 07 Jul 20 nicklas 36     @param tmpFolder A temporary folder where the job is allowed to store files
5982 07 Jul 20 nicklas 37     @return A JobSubmission instance
5982 07 Jul 20 nicklas 38   */
6614 28 Feb 22 nicklas 39   public JobSubmission createJobSubmission(OpenGridSession session, JobDefinition job, String workFolder, String tmpFolder);
5982 07 Jul 20 nicklas 40   
5984 10 Jul 20 nicklas 41   /**
5984 10 Jul 20 nicklas 42     Get information about a job that is expected to be waiting in the queue or
5984 10 Jul 20 nicklas 43     running. If this is not the case, the CmdResult should return with exit
5984 10 Jul 20 nicklas 44     status set to 1.
5984 10 Jul 20 nicklas 45     @param session A connected session that can be used to execute commands on the cluster
5984 10 Jul 20 nicklas 46     @param jobId Job identifier
5984 10 Jul 20 nicklas 47     @param timeAdjustment Adjustment in seconds that should be applied to all times returned
5984 10 Jul 20 nicklas 48       by commands on the cluster (this will make times compatible with BASE server)
5984 10 Jul 20 nicklas 49     @return A CmdResult instance with JobStatus information
5984 10 Jul 20 nicklas 50   */
5984 10 Jul 20 nicklas 51   public CmdResult<JobStatus> getStatusInQueue(OpenGridSession session, JobIdentifier jobId, int timeAdjustment);
5982 07 Jul 20 nicklas 52   
5984 10 Jul 20 nicklas 53   /**
5984 10 Jul 20 nicklas 54     Get information about a job that is expected to have finished.
5984 10 Jul 20 nicklas 55     
5984 10 Jul 20 nicklas 56     @param session A connected session that can be used to execute commands on the cluster
5984 10 Jul 20 nicklas 57     @param jobId Job identifier
5984 10 Jul 20 nicklas 58     @param timeAdjustment Adjustment in seconds that should be applied to all times returned
5984 10 Jul 20 nicklas 59       by commands on the cluster (this will make times compatible with BASE server)
5984 10 Jul 20 nicklas 60     @return A CmdResult instance with JobStatus information
5984 10 Jul 20 nicklas 61   */
5984 10 Jul 20 nicklas 62   public CmdResult<JobStatus> getStatusIfFinished(OpenGridSession session, JobIdentifier jobId, int timeAdjustment);
5984 10 Jul 20 nicklas 63   
5984 10 Jul 20 nicklas 64   /**
5984 10 Jul 20 nicklas 65     Tell the cluster that a running or waiting job should be cancelled.
5984 10 Jul 20 nicklas 66     @param session A connected session that can be used to execute commands on the cluster
5984 10 Jul 20 nicklas 67     @param jobId Job identifier
5984 10 Jul 20 nicklas 68     @return The result of executing the command
5984 10 Jul 20 nicklas 69   */
5984 10 Jul 20 nicklas 70   public CmdResult<String> cancelJob(OpenGridSession session, JobIdentifier jobId);
5984 10 Jul 20 nicklas 71   
5981 07 Jul 20 nicklas 72 }