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 |
Internal interface to be implemented once for each type |
5981 |
07 Jul 20 |
nicklas |
of cluster. The engine implements common functionality that |
5981 |
07 Jul 20 |
nicklas |
is different for each type of cluster. |
5981 |
07 Jul 20 |
nicklas |
15 |
|
5981 |
07 Jul 20 |
nicklas |
@author nicklas |
5981 |
07 Jul 20 |
nicklas |
@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 |
Set default configuration parameters on the given |
5981 |
07 Jul 20 |
nicklas |
configuration object. It is expected that the |
5981 |
07 Jul 20 |
nicklas |
{@link ClusterConfig#getType()} is a type that is compatible |
5981 |
07 Jul 20 |
nicklas |
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 |
Create a job submission for executing a job on the cluster. |
5982 |
07 Jul 20 |
nicklas |
32 |
|
6614 |
28 Feb 22 |
nicklas |
@param session A connected session that can be used to execute commands on the cluster |
5982 |
07 Jul 20 |
nicklas |
@param job Information about the job |
5982 |
07 Jul 20 |
nicklas |
@param workFolder The work folder where files needed for the job are stored |
5982 |
07 Jul 20 |
nicklas |
@param tmpFolder A temporary folder where the job is allowed to store files |
5982 |
07 Jul 20 |
nicklas |
@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 |
Get information about a job that is expected to be waiting in the queue or |
5984 |
10 Jul 20 |
nicklas |
running. If this is not the case, the CmdResult should return with exit |
5984 |
10 Jul 20 |
nicklas |
status set to 1. |
5984 |
10 Jul 20 |
nicklas |
@param session A connected session that can be used to execute commands on the cluster |
5984 |
10 Jul 20 |
nicklas |
@param jobId Job identifier |
5984 |
10 Jul 20 |
nicklas |
@param timeAdjustment Adjustment in seconds that should be applied to all times returned |
5984 |
10 Jul 20 |
nicklas |
by commands on the cluster (this will make times compatible with BASE server) |
5984 |
10 Jul 20 |
nicklas |
@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 |
Get information about a job that is expected to have finished. |
5984 |
10 Jul 20 |
nicklas |
55 |
|
5984 |
10 Jul 20 |
nicklas |
@param session A connected session that can be used to execute commands on the cluster |
5984 |
10 Jul 20 |
nicklas |
@param jobId Job identifier |
5984 |
10 Jul 20 |
nicklas |
@param timeAdjustment Adjustment in seconds that should be applied to all times returned |
5984 |
10 Jul 20 |
nicklas |
by commands on the cluster (this will make times compatible with BASE server) |
5984 |
10 Jul 20 |
nicklas |
@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 |
Tell the cluster that a running or waiting job should be cancelled. |
5984 |
10 Jul 20 |
nicklas |
@param session A connected session that can be used to execute commands on the cluster |
5984 |
10 Jul 20 |
nicklas |
@param jobId Job identifier |
5984 |
10 Jul 20 |
nicklas |
@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 |
} |