Package org.apache.storm

# Class LocalCluster

java.lang.Object
org.apache.storm.LocalCluster

All Implemented Interfaces:
  `AutoCloseable`, `Nimbus.Iface`, `ILocalCluster`, `ILocalClusterTrackedTopologyAware`

public class LocalCluster extends Object implements ILocalClusterTrackedTopologyAware, Nimbus.Iface
A stand alone storm cluster that runs inside a single process. It is intended to be used for testing. Both internal testing for Apache Storm itself and for people building storm topologies.

LocalCluster is an AutoCloseable so if you are using it in tests you can use a try block to be sure it is shut down.

try (LocalCluster cluster = new LocalCluster()) { // Do some tests } // The cluster has been shut down.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `LocalCluster.Builder`
  Simple way to configure a LocalCluster to meet your needs.
  `class`
  `LocalCluster.LocalTopology`
  When running a topology locally, for tests etc.

  ## Nested classes/interfaces inherited from interface org.apache.storm.ILocalCluster

  `ILocalCluster.ILocalTopology`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final KillOptions`
  `KILL_NOW`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LocalCluster()`
  Create a default LocalCluster.
  `LocalCluster(String zkHost, Long zkPort)`
  Create a LocalCluster that connects to an existing Zookeeper instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `activate(String topologyName)`
  Activate a topology.
  `Supervisor`
  `addSupervisor()`
  Add another supervisor to the topology.
  `Supervisor`
  `addSupervisor(Number ports)`
  Add another supervisor to the topology.
  `Supervisor`
  `addSupervisor(Number ports, String id)`
  Add another supervisor to the topology.
  `Supervisor`
  `addSupervisor(Number ports, Map<String,Object> conf, String id)`
  Add another supervisor to the topology.
  `void`
  `advanceClusterTime(int secs)`
  Advance the cluster time when the cluster is using SimulatedTime.
  `void`
  `advanceClusterTime(int secs, int incSecs)`
  Advance the cluster time when the cluster is using SimulatedTime.
  `BeginDownloadResult`
  `beginBlobDownload(String key)`
  `String`
  `beginCreateBlob(String key, SettableBlobMeta meta)`
  `String`
  `beginFileUpload()`
  `String`
  `beginUpdateBlob(String key)`
  `void`
  `cancelBlobUpload(String session)`
  `void`
  `close()`
  `void`
  `createStateInZookeeper(String key)`
  `void`
  `deactivate(String topologyName)`
  Deactivate a topology.
  `void`
  `debug(String name, String component, boolean enable, double samplingPercentage)`
  Enable/disable logging the tuples generated in topology via an internal EventLogger bolt.
  `void`
  `deleteBlob(String key)`
  `ByteBuffer`
  `downloadBlobChunk(String session)`
  `ByteBuffer`
  `downloadChunk(String id)`
  `void`
  `finishBlobUpload(String session)`
  `void`
  `finishFileUpload(String location)`
  `ReadableBlobMeta`
  `getBlobMeta(String key)`
  `int`
  `getBlobReplication(String key)`
  `ClusterSummary`
  `getClusterInfo()`
  Get cluster information.
  `IStormClusterState`
  `getClusterState()`
  This is intended for internal testing only.
  `ComponentPageInfo`
  `getComponentPageInfo(String topologyId, String componentId, String window, boolean isIncludeSys)`
  `List<ProfileRequest>`
  `getComponentPendingProfileActions(String id, String componentId, ProfileAction action)`
  `Map<String,Object>`
  `getDaemonConf()`
  Get daemon configuration.
  `NimbusSummary`
  `getLeader()`
  `LogConfig`
  `getLogConfig(String name)`
  `StormMetricsRegistry`
  `getMetricRegistry()`
  Reference to metrics registry.
  `Nimbus`
  `getNimbus()`
  Reference to nimbus.
  `String`
  `getNimbusConf()`
  `List<OwnerResourceSummary>`
  `getOwnerResourceSummaries(String owner)`
  `Supervisor`
  `getSupervisor(String id)`
  Get a specific Supervisor.
  `SupervisorAssignments`
  `getSupervisorAssignments(String node)`
  Get assigned assignments for a specific supervisor
  `SupervisorPageInfo`
  `getSupervisorPageInfo(String id, String host, boolean isIncludeSys)`
  `int`
  `getThriftServerPort()`
  `StormTopology`
  `getTopology(String id)`
  Get the compiled storm topology.
  `String`
  `getTopologyConf(String id)`
  The config of a topology as a JSON string.
  `TopologyHistoryInfo`
  `getTopologyHistory(String user)`
  `TopologyInfo`
  `getTopologyInfo(String id)`
  Get the state of a topology.
  `TopologyInfo`
  `getTopologyInfoByName(String name)`
  Get the state of a topology.
  `TopologyInfo`
  `getTopologyInfoByNameWithOpts(String name, GetInfoOptions options)`
  Get the state of a topology.
  `TopologyInfo`
  `getTopologyInfoWithOpts(String id, GetInfoOptions options)`
  Get the state of a topology.
  `TopologyPageInfo`
  `getTopologyPageInfo(String id, String window, boolean isIncludeSys)`
  `List<TopologySummary>`
  `getTopologySummaries()`
  `TopologySummary`
  `getTopologySummary(String id)`
  `TopologySummary`
  `getTopologySummaryByName(String name)`
  `String`
  `getTrackedId()`
  If the cluster is tracked get the id for the tracked cluster.
  `StormTopology`
  `getUserTopology(String id)`
  Returns the user specified topology as submitted originally.
  `boolean`
  `isRemoteBlobExists(String blobKey)`
  Decide if the blob is removed from cluster.
  `boolean`
  `isTopologyNameAllowed(String name)`
  `void`
  `killSupervisor(String id)`
  Kill a specific supervisor.
  `void`
  `killTopology(String topologyName)`
  Kill a topology (if you are not using ILocalTopology).
  `void`
  `killTopologyWithOpts(String name, KillOptions options)`
  Kill a topology (if you are not using ILocalTopology).
  `ListBlobsResult`
  `listBlobs(String session)`
  `static void`
  `main(String[] args)`
  Main entry point to running in local mode.
  `void`
  `processWorkerMetrics(WorkerMetrics metrics)`
  `void`
  `rebalance(String name, RebalanceOptions options)`
  Rebalance a topology.
  `void`
  `sendSupervisorWorkerHeartbeat(SupervisorWorkerHeartbeat heatbeat)`
  Send supervisor local worker heartbeat when a supervisor is unreachable
  `void`
  `sendSupervisorWorkerHeartbeats(SupervisorWorkerHeartbeats heartbeats)`
  Send supervisor worker heartbeats for a specific supervisor
  `void`
  `setBlobMeta(String key, SettableBlobMeta meta)`
  `void`
  `setLogConfig(String name, LogConfig config)`
  `void`
  `setWorkerProfiler(String id, ProfileRequest profileRequest)`
  `void`
  `shutdown()`
  Shut down the cluster.
  `void`
  `submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology)`
  `LocalCluster.LocalTopology`
  `submitTopology(String topologyName, Map<String,Object> conf, StormTopology topology)`
  Submit a topology to be run in local mode.
  `LocalCluster.LocalTopology`
  `submitTopology(String topologyName, Map<String,Object> conf, TrackedTopology topology)`
  Submit a tracked topology to be run in local mode.
  `void`
  `submitTopologyWithOpts(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options)`
  `LocalCluster.LocalTopology`
  `submitTopologyWithOpts(String topologyName, Map<String,Object> conf, StormTopology topology, SubmitOptions submitOpts)`
  Submit a topology to be run in local mode.
  `LocalCluster.LocalTopology`
  `submitTopologyWithOpts(String topologyName, Map<String,Object> conf, TrackedTopology topology, SubmitOptions submitOpts)`
  Submit a tracked topology to be run in local mode.
  `int`
  `updateBlobReplication(String key, int replication)`
  `void`
  `uploadBlobChunk(String session, ByteBuffer chunk)`
  `void`
  `uploadChunk(String location, ByteBuffer chunk)`
  `void`
  `uploadNewCredentials(String topologyName, Credentials creds)`
  Upload new credentials to a topology.
  `void`
  `waitForIdle()`
  Wait for the cluster to be idle.
  `void`
  `waitForIdle(long timeoutMs)`
  Wait for the cluster to be idle.
  `static <T> T`
  `withLocalModeOverride(Callable<T> c, long ttlSec)`
  Run c with a local mode cluster overriding the NimbusClient and DRPCClient calls.
  `static <T> T`
  `withLocalModeOverride(Callable<T> c, long ttlSec, Map<String,Object> daemonConf)`
  Run c with a local mode cluster overriding the NimbusClient and DRPCClient calls.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### KILL_NOW

    public static final KillOptions KILL_NOW

- ## Constructor Details

  - ### LocalCluster

    public LocalCluster() throws Exception
    Create a default LocalCluster.
    Throws:
      `Exception` - on any error

  - ### LocalCluster

    public LocalCluster(String zkHost, Long zkPort) throws Exception
    Create a LocalCluster that connects to an existing Zookeeper instance.
    Parameters:
      `zkHost` - the host for ZK
      `zkPort` - the port for ZK
    Throws:
      `Exception` - on any error

- ## Method Details

  - ### withLocalModeOverride

    public static <T> T withLocalModeOverride(Callable<T> c, long ttlSec) throws Exception
    Run c with a local mode cluster overriding the NimbusClient and DRPCClient calls. NOTE local mode override happens by default now unless netty is turned on for the local cluster.
    Parameters:
      `c` - the callable to run in this mode
      `ttlSec` - the number of seconds to let the cluster run after c has completed
    Returns:
      the result of calling C
    Throws:
      `Exception` - on any Exception.

  - ### withLocalModeOverride

    public static <T> T withLocalModeOverride(Callable<T> c, long ttlSec, Map<String,Object> daemonConf) throws Exception
    Run c with a local mode cluster overriding the NimbusClient and DRPCClient calls. NOTE local mode override happens by default now unless netty is turned on for the local cluster.
    Parameters:
      `c` - the callable to run in this mode
      `ttlSec` - the number of seconds to let the cluster run after c has completed
      `daemonConf` - configs to set for the daemon processes.
    Returns:
      the result of calling C
    Throws:
      `Exception` - on any Exception.

  - ### main

    public static void main(String[] args) throws Exception
    Main entry point to running in local mode.
    Parameters:
      `args` - arguments to be run in local mode
    Throws:
      `Exception` - on any error when running.

  - ### getNimbus

    public Nimbus getNimbus()
    Reference to nimbus.
    Returns:
      Nimbus itself so you can interact with it directly, if needed.

  - ### getMetricRegistry

    public StormMetricsRegistry getMetricRegistry()
    Reference to metrics registry.
    Returns:
      The metrics registry for the local cluster.

  - ### getDaemonConf

    public Map<String,Object> getDaemonConf()
    Get daemon configuration.
    Returns:
      the base config for the daemons

  - ### submitTopology

    public LocalCluster.LocalTopology submitTopology(String topologyName, Map<String,Object> conf, StormTopology topology) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Submit a topology to be run in local mode.
    Specified by:
      `submitTopology` in interface `ILocalCluster`
    Parameters:
      `topologyName` - the name of the topology to use
      `conf` - the config for the topology
      `topology` - the topology itself.
    Returns:
      an AutoCloseable that will kill the topology.
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### submitTopology

    public LocalCluster.LocalTopology submitTopology(String topologyName, Map<String,Object> conf, TrackedTopology topology) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalClusterTrackedTopologyAware`
    Submit a tracked topology to be run in local mode.
    Specified by:
      `submitTopology` in interface `ILocalClusterTrackedTopologyAware`
    Parameters:
      `topologyName` - the name of the topology to use
      `conf` - the config for the topology
      `topology` - the topology itself.
    Returns:
      an AutoCloseable that will kill the topology.
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### submitTopology

    public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology) throws AlreadyAliveException, InvalidTopologyException, AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `submitTopology` in interface `Nimbus.Iface`
    Throws:
      `AlreadyAliveException`
      `InvalidTopologyException`
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### submitTopologyWithOpts

    public LocalCluster.LocalTopology submitTopologyWithOpts(String topologyName, Map<String,Object> conf, StormTopology topology, SubmitOptions submitOpts) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Submit a topology to be run in local mode.
    Specified by:
      `submitTopologyWithOpts` in interface `ILocalCluster`
    Parameters:
      `topologyName` - the name of the topology to use
      `conf` - the config for the topology
      `topology` - the topology itself.
      `submitOpts` - options for topology
    Returns:
      an AutoCloseable that will kill the topology.
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### submitTopologyWithOpts

    public LocalCluster.LocalTopology submitTopologyWithOpts(String topologyName, Map<String,Object> conf, TrackedTopology topology, SubmitOptions submitOpts) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalClusterTrackedTopologyAware`
    Submit a tracked topology to be run in local mode.
    Specified by:
      `submitTopologyWithOpts` in interface `ILocalClusterTrackedTopologyAware`
    Parameters:
      `topologyName` - the name of the topology to use
      `conf` - the config for the topology
      `topology` - the topology itself.
      `submitOpts` - options for topology
    Returns:
      an AutoCloseable that will kill the topology.
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### submitTopologyWithOpts

    public void submitTopologyWithOpts(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options) throws AlreadyAliveException, InvalidTopologyException, AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `submitTopologyWithOpts` in interface `Nimbus.Iface`
    Throws:
      `AlreadyAliveException`
      `InvalidTopologyException`
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### uploadNewCredentials

    public void uploadNewCredentials(String topologyName, Credentials creds) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Upload new credentials to a topology.
    Specified by:
      `uploadNewCredentials` in interface `ILocalCluster`
    Specified by:
      `uploadNewCredentials` in interface `Nimbus.Iface`
    Parameters:
      `topologyName` - the name of the topology
      `creds` - the new credentails for the topology.
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### killTopology

    public void killTopology(String topologyName) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Kill a topology (if you are not using ILocalTopology).
    Specified by:
      `killTopology` in interface `ILocalCluster`
    Specified by:
      `killTopology` in interface `Nimbus.Iface`
    Parameters:
      `topologyName` - the name of the topology
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### killTopologyWithOpts

    public void killTopologyWithOpts(String name, KillOptions options) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Kill a topology (if you are not using ILocalTopology).
    Specified by:
      `killTopologyWithOpts` in interface `ILocalCluster`
    Specified by:
      `killTopologyWithOpts` in interface `Nimbus.Iface`
    Parameters:
      `name` - the name of the topology
      `options` - for how to kill the topology
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### activate

    public void activate(String topologyName) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Activate a topology.
    Specified by:
      `activate` in interface `ILocalCluster`
    Specified by:
      `activate` in interface `Nimbus.Iface`
    Parameters:
      `topologyName` - the name of the topology to activate
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### deactivate

    public void deactivate(String topologyName) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Deactivate a topology.
    Specified by:
      `deactivate` in interface `ILocalCluster`
    Specified by:
      `deactivate` in interface `Nimbus.Iface`
    Parameters:
      `topologyName` - the name of the topology to deactivate
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### rebalance

    public void rebalance(String name, RebalanceOptions options) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Rebalance a topology.
    Specified by:
      `rebalance` in interface `ILocalCluster`
    Specified by:
      `rebalance` in interface `Nimbus.Iface`
    Parameters:
      `name` - the name of the topology
      `options` - options for rebalanceing the topology.
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### shutdown

    public void shutdown()
    Description copied from interface: `ILocalCluster`
    Shut down the cluster.
    Specified by:
      `shutdown` in interface `ILocalCluster`

  - ### getTopologyConf

    public String getTopologyConf(String id) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    The config of a topology as a JSON string.
    Specified by:
      `getTopologyConf` in interface `ILocalCluster`
    Specified by:
      `getTopologyConf` in interface `Nimbus.Iface`
    Parameters:
      `id` - the id of the topology (not the name)
    Returns:
      The config of a topology as a JSON string
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### getTopology

    public StormTopology getTopology(String id) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Get the compiled storm topology.
    Specified by:
      `getTopology` in interface `ILocalCluster`
    Specified by:
      `getTopology` in interface `Nimbus.Iface`
    Parameters:
      `id` - the id of the topology (not the name)
    Returns:
      the compiled storm topology
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### getClusterInfo

    public ClusterSummary getClusterInfo() throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Get cluster information.
    Specified by:
      `getClusterInfo` in interface `ILocalCluster`
    Specified by:
      `getClusterInfo` in interface `Nimbus.Iface`
    Returns:
      a summary of the current state of the cluster
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### getTopologySummaries

    public List<TopologySummary> getTopologySummaries() throws org.apache.storm.thrift.TException
    Specified by:
      `getTopologySummaries` in interface `ILocalCluster`
    Specified by:
      `getTopologySummaries` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### getTopologySummaryByName

    public TopologySummary getTopologySummaryByName(String name) throws org.apache.storm.thrift.TException
    Specified by:
      `getTopologySummaryByName` in interface `ILocalCluster`
    Specified by:
      `getTopologySummaryByName` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### getTopologySummary

    public TopologySummary getTopologySummary(String id) throws org.apache.storm.thrift.TException
    Specified by:
      `getTopologySummary` in interface `ILocalCluster`
    Specified by:
      `getTopologySummary` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### getTopologyInfo

    public TopologyInfo getTopologyInfo(String id) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Get the state of a topology.
    Specified by:
      `getTopologyInfo` in interface `ILocalCluster`
    Specified by:
      `getTopologyInfo` in interface `Nimbus.Iface`
    Parameters:
      `id` - the id of the topology (not the name)
    Returns:
      the state of a topology
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### getTopologyInfoByName

    public TopologyInfo getTopologyInfoByName(String name) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Get the state of a topology.
    Specified by:
      `getTopologyInfoByName` in interface `ILocalCluster`
    Specified by:
      `getTopologyInfoByName` in interface `Nimbus.Iface`
    Parameters:
      `name` - the name of the topology (not the id)
    Returns:
      the state of a topology
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### getTopologyInfoWithOpts

    public TopologyInfo getTopologyInfoWithOpts(String id, GetInfoOptions options) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Get the state of a topology.
    Specified by:
      `getTopologyInfoWithOpts` in interface `ILocalCluster`
    Specified by:
      `getTopologyInfoWithOpts` in interface `Nimbus.Iface`
    Parameters:
      `id` - the id of the topology (not the name)
      `options` - This is to choose number of Error(s) in TopologyInfo.
    Returns:
      the state of a topology
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### getTopologyInfoByNameWithOpts

    public TopologyInfo getTopologyInfoByNameWithOpts(String name, GetInfoOptions options) throws org.apache.storm.thrift.TException
    Description copied from interface: `ILocalCluster`
    Get the state of a topology.
    Specified by:
      `getTopologyInfoByNameWithOpts` in interface `ILocalCluster`
    Specified by:
      `getTopologyInfoByNameWithOpts` in interface `Nimbus.Iface`
    Parameters:
      `name` - the name of the topology (not the id)
      `options` - This is GetInfoOptions to choose Error(s) in on TopologyInfo.
    Returns:
      the state of a topology
    Throws:
      `org.apache.storm.thrift.TException` - on any error from nimbus

  - ### getThriftServerPort

    public int getThriftServerPort()

  - ### isRemoteBlobExists

    public boolean isRemoteBlobExists(String blobKey) throws AuthorizationException, org.apache.storm.thrift.TException
    Description copied from interface: `Nimbus.Iface`
    Decide if the blob is removed from cluster.
    Specified by:
      `isRemoteBlobExists` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### close

    public void close() throws Exception
    Specified by:
      `close` in interface `AutoCloseable`
    Throws:
      `Exception`

  - ### getSupervisor

    public Supervisor getSupervisor(String id)
    Get a specific Supervisor. This is intended mostly for internal testing.
    Parameters:
      `id` - the id of the supervisor

  - ### killSupervisor

    public void killSupervisor(String id)
    Kill a specific supervisor. This is intended mostly for internal testing.
    Parameters:
      `id` - the id of the supervisor

  - ### addSupervisor

    public Supervisor addSupervisor() throws Exception
    Add another supervisor to the topology. This is intended mostly for internal testing.
    Throws:
      `Exception`

  - ### addSupervisor

    public Supervisor addSupervisor(Number ports) throws Exception
    Add another supervisor to the topology. This is intended mostly for internal testing.
    Parameters:
      `ports` - the number of ports/slots the supervisor should have
    Throws:
      `Exception`

  - ### addSupervisor

    public Supervisor addSupervisor(Number ports, String id) throws Exception
    Add another supervisor to the topology. This is intended mostly for internal testing.
    Parameters:
      `ports` - the number of ports/slots the supervisor should have
      `id` - the id of the new supervisor, so you can find it later.
    Throws:
      `Exception`

  - ### addSupervisor

    public Supervisor addSupervisor(Number ports, Map<String,Object> conf, String id) throws Exception
    Add another supervisor to the topology. This is intended mostly for internal testing.
    Parameters:
      `ports` - the number of ports/slots the supervisor should have
      `conf` - any config values that should be added/over written in the daemon conf of the cluster.
      `id` - the id of the new supervisor, so you can find it later.
    Throws:
      `Exception`

  - ### waitForIdle

    public void waitForIdle() throws InterruptedException
    Wait for the cluster to be idle. This is intended to be used with Simulated time and is for internal testing. Note that this does not wait for spout or bolt executors to be idle.
    Throws:
      `InterruptedException` - if interrupted while waiting.
      `AssertionError` - if the cluster did not come to an idle point with a timeout.

  - ### waitForIdle

    public void waitForIdle(long timeoutMs) throws InterruptedException
    Wait for the cluster to be idle. This is intended to be used with Simulated time and is for internal testing. Note that this does not wait for spout or bolt executors to be idle.
    Parameters:
      `timeoutMs` - the number of ms to wait before throwing an error.
    Throws:
      `InterruptedException` - if interrupted while waiting.
      `AssertionError` - if the cluster did not come to an idle point with a timeout.

  - ### advanceClusterTime

    public void advanceClusterTime(int secs) throws InterruptedException
    Description copied from interface: `ILocalCluster`
    Advance the cluster time when the cluster is using SimulatedTime. This is intended for internal testing only.
    Specified by:
      `advanceClusterTime` in interface `ILocalCluster`
    Parameters:
      `secs` - the number of seconds to advance time
    Throws:
      `InterruptedException`

  - ### advanceClusterTime

    public void advanceClusterTime(int secs, int incSecs) throws InterruptedException
    Description copied from interface: `ILocalCluster`
    Advance the cluster time when the cluster is using SimulatedTime. This is intended for internal testing only.
    Specified by:
      `advanceClusterTime` in interface `ILocalCluster`
    Parameters:
      `secs` - the number of seconds to advance time
      `incSecs` - the number of steps we should take when advancing simulated time
    Throws:
      `InterruptedException`

  - ### getClusterState

    public IStormClusterState getClusterState()
    Description copied from interface: `ILocalCluster`
    This is intended for internal testing only.
    Specified by:
      `getClusterState` in interface `ILocalCluster`
    Returns:
      an internal class that holds the state of the cluster.

  - ### getTrackedId

    public String getTrackedId()
    Description copied from interface: `ILocalCluster`
    If the cluster is tracked get the id for the tracked cluster. This is intended for internal testing only.
    Specified by:
      `getTrackedId` in interface `ILocalCluster`
    Returns:
      the id of the tracked cluster

  - ### setLogConfig

    public void setLogConfig(String name, LogConfig config) throws org.apache.storm.thrift.TException
    Specified by:
      `setLogConfig` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### getLogConfig

    public LogConfig getLogConfig(String name) throws org.apache.storm.thrift.TException
    Specified by:
      `getLogConfig` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### debug

    public void debug(String name, String component, boolean enable, double samplingPercentage) throws NotAliveException, AuthorizationException, org.apache.storm.thrift.TException
    Description copied from interface: `Nimbus.Iface`
    Enable/disable logging the tuples generated in topology via an internal EventLogger bolt. The component name is optional and if null or empty, the debug flag will apply to the entire topology. The 'samplingPercentage' will limit loggging to a percentage of generated tuples.
    Specified by:
      `debug` in interface `Nimbus.Iface`
    Throws:
      `NotAliveException`
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### setWorkerProfiler

    public void setWorkerProfiler(String id, ProfileRequest profileRequest) throws org.apache.storm.thrift.TException
    Specified by:
      `setWorkerProfiler` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### getComponentPendingProfileActions

    public List<ProfileRequest> getComponentPendingProfileActions(String id, String componentId, ProfileAction action) throws org.apache.storm.thrift.TException
    Specified by:
      `getComponentPendingProfileActions` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### beginCreateBlob

    public String beginCreateBlob(String key, SettableBlobMeta meta) throws AuthorizationException, KeyAlreadyExistsException, org.apache.storm.thrift.TException
    Specified by:
      `beginCreateBlob` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyAlreadyExistsException`
      `org.apache.storm.thrift.TException`

  - ### beginUpdateBlob

    public String beginUpdateBlob(String key) throws AuthorizationException, KeyNotFoundException, org.apache.storm.thrift.TException
    Specified by:
      `beginUpdateBlob` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyNotFoundException`
      `org.apache.storm.thrift.TException`

  - ### uploadBlobChunk

    public void uploadBlobChunk(String session, ByteBuffer chunk) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `uploadBlobChunk` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### finishBlobUpload

    public void finishBlobUpload(String session) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `finishBlobUpload` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### cancelBlobUpload

    public void cancelBlobUpload(String session) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `cancelBlobUpload` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getBlobMeta

    public ReadableBlobMeta getBlobMeta(String key) throws AuthorizationException, KeyNotFoundException, org.apache.storm.thrift.TException
    Specified by:
      `getBlobMeta` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyNotFoundException`
      `org.apache.storm.thrift.TException`

  - ### setBlobMeta

    public void setBlobMeta(String key, SettableBlobMeta meta) throws AuthorizationException, KeyNotFoundException, org.apache.storm.thrift.TException
    Specified by:
      `setBlobMeta` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyNotFoundException`
      `org.apache.storm.thrift.TException`

  - ### beginBlobDownload

    public BeginDownloadResult beginBlobDownload(String key) throws AuthorizationException, KeyNotFoundException, org.apache.storm.thrift.TException
    Specified by:
      `beginBlobDownload` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyNotFoundException`
      `org.apache.storm.thrift.TException`

  - ### downloadBlobChunk

    public ByteBuffer downloadBlobChunk(String session) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `downloadBlobChunk` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### deleteBlob

    public void deleteBlob(String key) throws AuthorizationException, KeyNotFoundException, org.apache.storm.thrift.TException
    Specified by:
      `deleteBlob` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyNotFoundException`
      `org.apache.storm.thrift.TException`

  - ### listBlobs

    public ListBlobsResult listBlobs(String session) throws org.apache.storm.thrift.TException
    Specified by:
      `listBlobs` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### getBlobReplication

    public int getBlobReplication(String key) throws AuthorizationException, KeyNotFoundException, org.apache.storm.thrift.TException
    Specified by:
      `getBlobReplication` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyNotFoundException`
      `org.apache.storm.thrift.TException`

  - ### updateBlobReplication

    public int updateBlobReplication(String key, int replication) throws AuthorizationException, KeyNotFoundException, org.apache.storm.thrift.TException
    Specified by:
      `updateBlobReplication` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `KeyNotFoundException`
      `org.apache.storm.thrift.TException`

  - ### createStateInZookeeper

    public void createStateInZookeeper(String key) throws org.apache.storm.thrift.TException
    Specified by:
      `createStateInZookeeper` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`

  - ### beginFileUpload

    public String beginFileUpload() throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `beginFileUpload` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### uploadChunk

    public void uploadChunk(String location, ByteBuffer chunk) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `uploadChunk` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### finishFileUpload

    public void finishFileUpload(String location) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `finishFileUpload` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### downloadChunk

    public ByteBuffer downloadChunk(String id) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `downloadChunk` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getNimbusConf

    public String getNimbusConf() throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `getNimbusConf` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getLeader

    public NimbusSummary getLeader() throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `getLeader` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### isTopologyNameAllowed

    public boolean isTopologyNameAllowed(String name) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `isTopologyNameAllowed` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getTopologyPageInfo

    public TopologyPageInfo getTopologyPageInfo(String id, String window, boolean isIncludeSys) throws NotAliveException, AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `getTopologyPageInfo` in interface `Nimbus.Iface`
    Throws:
      `NotAliveException`
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getSupervisorPageInfo

    public SupervisorPageInfo getSupervisorPageInfo(String id, String host, boolean isIncludeSys) throws NotAliveException, AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `getSupervisorPageInfo` in interface `Nimbus.Iface`
    Throws:
      `NotAliveException`
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getComponentPageInfo

    public ComponentPageInfo getComponentPageInfo(String topologyId, String componentId, String window, boolean isIncludeSys) throws NotAliveException, AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `getComponentPageInfo` in interface `Nimbus.Iface`
    Throws:
      `NotAliveException`
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getUserTopology

    public StormTopology getUserTopology(String id) throws NotAliveException, AuthorizationException, org.apache.storm.thrift.TException
    Description copied from interface: `Nimbus.Iface`
    Returns the user specified topology as submitted originally. Compare `Nimbus.Iface.getTopology(String id)`.
    Specified by:
      `getUserTopology` in interface `Nimbus.Iface`
    Throws:
      `NotAliveException`
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getTopologyHistory

    public TopologyHistoryInfo getTopologyHistory(String user) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `getTopologyHistory` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getOwnerResourceSummaries

    public List<OwnerResourceSummary> getOwnerResourceSummaries(String owner) throws AuthorizationException, org.apache.storm.thrift.TException
    Specified by:
      `getOwnerResourceSummaries` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### getSupervisorAssignments

    public SupervisorAssignments getSupervisorAssignments(String node) throws AuthorizationException, org.apache.storm.thrift.TException
    Description copied from interface: `Nimbus.Iface`
    Get assigned assignments for a specific supervisor
    Specified by:
      `getSupervisorAssignments` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### sendSupervisorWorkerHeartbeats

    public void sendSupervisorWorkerHeartbeats(SupervisorWorkerHeartbeats heartbeats) throws AuthorizationException, org.apache.storm.thrift.TException
    Description copied from interface: `Nimbus.Iface`
    Send supervisor worker heartbeats for a specific supervisor
    Specified by:
      `sendSupervisorWorkerHeartbeats` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### sendSupervisorWorkerHeartbeat

    public void sendSupervisorWorkerHeartbeat(SupervisorWorkerHeartbeat heatbeat) throws AuthorizationException, org.apache.storm.thrift.TException
    Description copied from interface: `Nimbus.Iface`
    Send supervisor local worker heartbeat when a supervisor is unreachable
    Specified by:
      `sendSupervisorWorkerHeartbeat` in interface `Nimbus.Iface`
    Throws:
      `AuthorizationException`
      `org.apache.storm.thrift.TException`

  - ### processWorkerMetrics

    public void processWorkerMetrics(WorkerMetrics metrics) throws org.apache.storm.thrift.TException
    Specified by:
      `processWorkerMetrics` in interface `Nimbus.Iface`
    Throws:
      `org.apache.storm.thrift.TException`