Interface ClusterEngine

All Known Implementing Classes:
DirectEngine, OpenGridEngine, SlurmEngine

public interface ClusterEngine
Internal interface to be implemented once for each type of cluster. The engine implements common functionality that is different for each type of cluster.
Since:
1.4
Author:
nicklas
  • Method Details

    • setDefaultConfig

      void setDefaultConfig​(ClusterConfig config)
      Set default configuration parameters on the given configuration object. It is expected that the ClusterConfig.getType() is a type that is compatible with the engine implementation.
    • createJobSubmission

      JobSubmission createJobSubmission​(OpenGridSession session, JobDefinition job, String workFolder, String tmpFolder)
      Create a job submission for executing a job on the cluster.
      Parameters:
      session - A connected session that can be used to execute commands on the cluster
      job - Information about the job
      workFolder - The work folder where files needed for the job are stored
      tmpFolder - A temporary folder where the job is allowed to store files
      Returns:
      A JobSubmission instance
    • getStatusInQueue

      CmdResult<JobStatus> getStatusInQueue​(OpenGridSession session, JobIdentifier jobId, int timeAdjustment)
      Get information about a job that is expected to be waiting in the queue or running. If this is not the case, the CmdResult should return with exit status set to 1.
      Parameters:
      session - A connected session that can be used to execute commands on the cluster
      jobId - Job identifier
      timeAdjustment - Adjustment in seconds that should be applied to all times returned by commands on the cluster (this will make times compatible with BASE server)
      Returns:
      A CmdResult instance with JobStatus information
    • getStatusIfFinished

      CmdResult<JobStatus> getStatusIfFinished​(OpenGridSession session, JobIdentifier jobId, int timeAdjustment)
      Get information about a job that is expected to have finished.
      Parameters:
      session - A connected session that can be used to execute commands on the cluster
      jobId - Job identifier
      timeAdjustment - Adjustment in seconds that should be applied to all times returned by commands on the cluster (this will make times compatible with BASE server)
      Returns:
      A CmdResult instance with JobStatus information
    • cancelJob

      CmdResult<String> cancelJob​(OpenGridSession session, JobIdentifier jobId)
      Tell the cluster that a running or waiting job should be cancelled.
      Parameters:
      session - A connected session that can be used to execute commands on the cluster
      jobId - Job identifier
      Returns:
      The result of executing the command