extensions/net.sf.basedb.opengrid/trunk/src/net/sf/basedb/opengrid/config/ClusterType.java

Code
Comments
Other
Rev Date Author Line
5981 07 Jul 20 nicklas 1 package net.sf.basedb.opengrid.config;
5981 07 Jul 20 nicklas 2
5981 07 Jul 20 nicklas 3 import net.sf.basedb.opengrid.engine.ClusterEngine;
6613 28 Feb 22 nicklas 4 import net.sf.basedb.opengrid.engine.DirectEngine;
5981 07 Jul 20 nicklas 5 import net.sf.basedb.opengrid.engine.OpenGridEngine;
5981 07 Jul 20 nicklas 6 import net.sf.basedb.opengrid.engine.SlurmEngine;
5981 07 Jul 20 nicklas 7
5981 07 Jul 20 nicklas 8 /**
5981 07 Jul 20 nicklas 9   Enumeration with cluster types that are supported by this plugin.
5981 07 Jul 20 nicklas 10   @author nicklas
5981 07 Jul 20 nicklas 11   @since 1.4
5981 07 Jul 20 nicklas 12 */
5981 07 Jul 20 nicklas 13 public enum ClusterType 
5981 07 Jul 20 nicklas 14 {
5981 07 Jul 20 nicklas 15
5981 07 Jul 20 nicklas 16   /**
5981 07 Jul 20 nicklas 17     The cluster is an Open Grid Engine cluster.
5981 07 Jul 20 nicklas 18   */
5981 07 Jul 20 nicklas 19   OPENGRID
5981 07 Jul 20 nicklas 20   {
5981 07 Jul 20 nicklas 21     @Override
5984 10 Jul 20 nicklas 22     public ClusterEngine createEngine() 
5981 07 Jul 20 nicklas 23     {
5984 10 Jul 20 nicklas 24       return new OpenGridEngine(); 
5981 07 Jul 20 nicklas 25     }
5981 07 Jul 20 nicklas 26   },
5981 07 Jul 20 nicklas 27   
5981 07 Jul 20 nicklas 28   /**
5981 07 Jul 20 nicklas 29     The cluster is a Slurm Workload Manager cluster.
5981 07 Jul 20 nicklas 30   */
5981 07 Jul 20 nicklas 31   SLURM  
5981 07 Jul 20 nicklas 32   {
5981 07 Jul 20 nicklas 33     @Override
5984 10 Jul 20 nicklas 34     public ClusterEngine createEngine() 
5981 07 Jul 20 nicklas 35     {
5984 10 Jul 20 nicklas 36       return new SlurmEngine();
5981 07 Jul 20 nicklas 37     }
6613 28 Feb 22 nicklas 38   },
6613 28 Feb 22 nicklas 39   
6613 28 Feb 22 nicklas 40   /**
6613 28 Feb 22 nicklas 41     The "cluster" doesn't have an manager, but jobs are started immediately
6613 28 Feb 22 nicklas 42     when submitted. Intended to be uses for development and testing only.
6613 28 Feb 22 nicklas 43     @since 1.5
6613 28 Feb 22 nicklas 44   */
6613 28 Feb 22 nicklas 45   DIRECT
6613 28 Feb 22 nicklas 46   {
6613 28 Feb 22 nicklas 47     @Override
6613 28 Feb 22 nicklas 48     public ClusterEngine createEngine() 
6613 28 Feb 22 nicklas 49     {
6613 28 Feb 22 nicklas 50       return new DirectEngine(); 
6613 28 Feb 22 nicklas 51     }
5981 07 Jul 20 nicklas 52   };
5981 07 Jul 20 nicklas 53   
5981 07 Jul 20 nicklas 54   /**
5984 10 Jul 20 nicklas 55     Create a new engine instance to use for cluster-specific operations.
5981 07 Jul 20 nicklas 56     If the engine is thread-safe, a singleton instance can
5981 07 Jul 20 nicklas 57     be used, otherwise a new engine should be created 
5981 07 Jul 20 nicklas 58     each time this method is called.
5981 07 Jul 20 nicklas 59   */
5984 10 Jul 20 nicklas 60   public abstract ClusterEngine createEngine();
5981 07 Jul 20 nicklas 61   
5981 07 Jul 20 nicklas 62 }