org.apache.whirr
Class ClusterController

java.lang.Object
  extended by org.apache.whirr.ClusterController
Direct Known Subclasses:
ByonClusterController

public class ClusterController
extends Object

This class is used to start and stop clusters.


Field Summary
protected  HandlerMapFactory handlerMapFactory
           
 
Constructor Summary
ClusterController()
           
ClusterController(com.google.common.base.Function<ClusterSpec,org.jclouds.compute.ComputeServiceContext> getCompute, ClusterStateStoreFactory stateStoreFactory)
           
 
Method Summary
 Cluster bootstrapCluster(ClusterSpec clusterSpec)
          Provision the hardware resources needed for running services
 Cluster cleanupCluster(ClusterSpec spec)
          Remove the cluster services
 Cluster cleanupCluster(ClusterSpec clusterSpec, Cluster cluster)
           
 Cluster configureServices(ClusterSpec spec)
          Configure cluster services
 Cluster configureServices(ClusterSpec clusterSpec, Cluster cluster)
           
 Cluster configureServices(ClusterSpec clusterSpec, Cluster cluster, Set<String> targetRoles, Set<String> targetInstanceIds)
           
 org.jclouds.compute.options.RunScriptOptions defaultRunScriptOptionsForSpec(ClusterSpec spec)
           
 void destroyCluster(ClusterSpec clusterSpec)
          Stop the cluster and destroy all resources associated with it.
 void destroyCluster(ClusterSpec clusterSpec, Cluster cluster)
           
 void destroyInstance(ClusterSpec clusterSpec, String instanceId)
           
 ClusterStateStore getClusterStateStore(ClusterSpec clusterSpec)
           
 com.google.common.base.Function<ClusterSpec,org.jclouds.compute.ComputeServiceContext> getCompute()
           
 HandlerMapFactory getHandlerMapFactory()
           
 Set<Cluster.Instance> getInstances(ClusterSpec spec)
           
 Set<Cluster.Instance> getInstances(ClusterSpec spec, ClusterStateStore stateStore)
           
 String getName()
           
 Set<? extends org.jclouds.compute.domain.NodeMetadata> getNodes(ClusterSpec clusterSpec)
          Deprecated. 
 Cluster launchCluster(ClusterSpec clusterSpec)
          Start the cluster described by clusterSpec and block until the cluster is available.
static com.google.common.base.Predicate<org.jclouds.compute.domain.ComputeMetadata> runningInGroup(String group)
           
 Map<? extends org.jclouds.compute.domain.NodeMetadata,org.jclouds.compute.domain.ExecResponse> runScriptOnNodesMatching(ClusterSpec spec, com.google.common.base.Predicate<org.jclouds.compute.domain.NodeMetadata> condition, org.jclouds.scriptbuilder.domain.Statement statement)
           
 Map<? extends org.jclouds.compute.domain.NodeMetadata,org.jclouds.compute.domain.ExecResponse> runScriptOnNodesMatching(ClusterSpec spec, com.google.common.base.Predicate<org.jclouds.compute.domain.NodeMetadata> condition, org.jclouds.scriptbuilder.domain.Statement statement, org.jclouds.compute.options.RunScriptOptions options)
           
 void setHandlerMapFactory(HandlerMapFactory handlerMapFactory)
           
 Cluster startServices(ClusterSpec spec)
          Start the cluster services
 Cluster startServices(ClusterSpec clusterSpec, Cluster cluster)
           
 Cluster startServices(ClusterSpec clusterSpec, Cluster cluster, Set<String> targetRoles, Set<String> targetInstanceIds)
           
 Cluster stopServices(ClusterSpec spec)
          Stop the cluster services
 Cluster stopServices(ClusterSpec clusterSpec, Cluster cluster)
           
 Cluster stopServices(ClusterSpec clusterSpec, Cluster cluster, Set<String> targetRoles, Set<String> targetInstanceIds)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

handlerMapFactory

protected HandlerMapFactory handlerMapFactory
Constructor Detail

ClusterController

public ClusterController()

ClusterController

public ClusterController(com.google.common.base.Function<ClusterSpec,org.jclouds.compute.ComputeServiceContext> getCompute,
                         ClusterStateStoreFactory stateStoreFactory)
Method Detail

getName

public String getName()
Returns:
the unique name of the service.

getCompute

public com.google.common.base.Function<ClusterSpec,org.jclouds.compute.ComputeServiceContext> getCompute()
Returns:
compute service contexts for use in managing the service

launchCluster

public Cluster launchCluster(ClusterSpec clusterSpec)
                      throws IOException,
                             InterruptedException
Start the cluster described by clusterSpec and block until the cluster is available. It is not guaranteed that the service running on the cluster has started when this method returns.

Parameters:
clusterSpec -
Returns:
an object representing the running cluster
Throws:
IOException - if there is a problem while starting the cluster. The cluster may or may not have started.
InterruptedException - if the thread is interrupted.

bootstrapCluster

public Cluster bootstrapCluster(ClusterSpec clusterSpec)
                         throws IOException,
                                InterruptedException
Provision the hardware resources needed for running services

Throws:
IOException
InterruptedException

configureServices

@Beta
public Cluster configureServices(ClusterSpec spec)
                          throws IOException,
                                 InterruptedException
Configure cluster services

Throws:
IOException
InterruptedException

configureServices

@Beta
public Cluster configureServices(ClusterSpec clusterSpec,
                                      Cluster cluster)
                          throws IOException,
                                 InterruptedException
Throws:
IOException
InterruptedException

configureServices

@Beta
public Cluster configureServices(ClusterSpec clusterSpec,
                                      Cluster cluster,
                                      Set<String> targetRoles,
                                      Set<String> targetInstanceIds)
                          throws IOException,
                                 InterruptedException
Throws:
IOException
InterruptedException

startServices

public Cluster startServices(ClusterSpec spec)
                      throws IOException,
                             InterruptedException
Start the cluster services

Throws:
IOException
InterruptedException

startServices

public Cluster startServices(ClusterSpec clusterSpec,
                             Cluster cluster)
                      throws IOException,
                             InterruptedException
Throws:
IOException
InterruptedException

startServices

public Cluster startServices(ClusterSpec clusterSpec,
                             Cluster cluster,
                             Set<String> targetRoles,
                             Set<String> targetInstanceIds)
                      throws IOException,
                             InterruptedException
Throws:
IOException
InterruptedException

stopServices

public Cluster stopServices(ClusterSpec spec)
                     throws IOException,
                            InterruptedException
Stop the cluster services

Throws:
IOException
InterruptedException

stopServices

public Cluster stopServices(ClusterSpec clusterSpec,
                            Cluster cluster)
                     throws IOException,
                            InterruptedException
Throws:
IOException
InterruptedException

stopServices

public Cluster stopServices(ClusterSpec clusterSpec,
                            Cluster cluster,
                            Set<String> targetRoles,
                            Set<String> targetInstanceIds)
                     throws IOException,
                            InterruptedException
Throws:
IOException
InterruptedException

cleanupCluster

@Beta
public Cluster cleanupCluster(ClusterSpec spec)
                       throws IOException,
                              InterruptedException
Remove the cluster services

Throws:
IOException
InterruptedException

cleanupCluster

@Beta
public Cluster cleanupCluster(ClusterSpec clusterSpec,
                                   Cluster cluster)
                       throws IOException,
                              InterruptedException
Throws:
IOException
InterruptedException

destroyCluster

public void destroyCluster(ClusterSpec clusterSpec)
                    throws IOException,
                           InterruptedException
Stop the cluster and destroy all resources associated with it.

Throws:
IOException - if there is a problem while stopping the cluster. The cluster may or may not have been stopped.
InterruptedException - if the thread is interrupted.

destroyCluster

public void destroyCluster(ClusterSpec clusterSpec,
                           Cluster cluster)
                    throws IOException,
                           InterruptedException
Throws:
IOException
InterruptedException

destroyInstance

public void destroyInstance(ClusterSpec clusterSpec,
                            String instanceId)
                     throws IOException
Throws:
IOException

getClusterStateStore

public ClusterStateStore getClusterStateStore(ClusterSpec clusterSpec)

runScriptOnNodesMatching

public Map<? extends org.jclouds.compute.domain.NodeMetadata,org.jclouds.compute.domain.ExecResponse> runScriptOnNodesMatching(ClusterSpec spec,
                                                                                                                               com.google.common.base.Predicate<org.jclouds.compute.domain.NodeMetadata> condition,
                                                                                                                               org.jclouds.scriptbuilder.domain.Statement statement)
                                                                                                                        throws IOException,
                                                                                                                               org.jclouds.compute.RunScriptOnNodesException
Throws:
IOException
org.jclouds.compute.RunScriptOnNodesException

runScriptOnNodesMatching

public Map<? extends org.jclouds.compute.domain.NodeMetadata,org.jclouds.compute.domain.ExecResponse> runScriptOnNodesMatching(ClusterSpec spec,
                                                                                                                               com.google.common.base.Predicate<org.jclouds.compute.domain.NodeMetadata> condition,
                                                                                                                               org.jclouds.scriptbuilder.domain.Statement statement,
                                                                                                                               org.jclouds.compute.options.RunScriptOptions options)
                                                                                                                        throws IOException,
                                                                                                                               org.jclouds.compute.RunScriptOnNodesException
Throws:
IOException
org.jclouds.compute.RunScriptOnNodesException

defaultRunScriptOptionsForSpec

public org.jclouds.compute.options.RunScriptOptions defaultRunScriptOptionsForSpec(ClusterSpec spec)

getNodes

@Deprecated
public Set<? extends org.jclouds.compute.domain.NodeMetadata> getNodes(ClusterSpec clusterSpec)
                                                                throws IOException,
                                                                       InterruptedException
Deprecated. 

Throws:
IOException
InterruptedException

getInstances

public Set<Cluster.Instance> getInstances(ClusterSpec spec)
                                   throws IOException,
                                          InterruptedException
Throws:
IOException
InterruptedException

getInstances

public Set<Cluster.Instance> getInstances(ClusterSpec spec,
                                          ClusterStateStore stateStore)
                                   throws IOException,
                                          InterruptedException
Throws:
IOException
InterruptedException

getHandlerMapFactory

public HandlerMapFactory getHandlerMapFactory()

setHandlerMapFactory

public void setHandlerMapFactory(HandlerMapFactory handlerMapFactory)

runningInGroup

public static com.google.common.base.Predicate<org.jclouds.compute.domain.ComputeMetadata> runningInGroup(String group)


Copyright © 2010-2013 The Apache Software Foundation. All Rights Reserved.