## Uses of Class
org.apache.storm.scheduler.Cluster

- Packages that use Cluster
  Package | Description
  --- | ---
  org.apache.storm.scheduler |
  org.apache.storm.scheduler.blacklist |
  org.apache.storm.scheduler.blacklist.strategies |
  org.apache.storm.scheduler.multitenant |
  org.apache.storm.scheduler.resource |
  org.apache.storm.scheduler.resource.strategies.scheduling |
  org.apache.storm.scheduler.resource.strategies.scheduling.sorter |

- - ### Uses of Cluster in org.apache.storm.scheduler

    Subclasses of Cluster in org.apache.storm.scheduler
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SingleTopologyCluster` | A Cluster that only allows modification to a single topology.

    Methods in org.apache.storm.scheduler with parameters of type Cluster
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | DefaultScheduler.`defaultSchedule​(Topologies topologies, Cluster cluster)` |
    `static Map<WorkerSlot,​List<ExecutorDetails>>` | EvenScheduler.`getAliveAssignedWorkerSlotExecutors​(Cluster cluster, String topologyId)` |
    `void` | DefaultScheduler.`schedule​(Topologies topologies, Cluster cluster)` |
    `void` | EvenScheduler.`schedule​(Topologies topologies, Cluster cluster)` |
    `void` | IScheduler.`schedule​(Topologies topologies, Cluster cluster)` | Set assignments for the topologies which needs scheduling.
    `void` | IsolationScheduler.`schedule​(Topologies topologies, Cluster cluster)` |
    `static void` | EvenScheduler.`scheduleTopologiesEvenly​(Topologies topologies, Cluster cluster)` |
    `static Set<WorkerSlot>` | DefaultScheduler.`slotsCanReassign​(Cluster cluster, Set<WorkerSlot> slots)` |
    `void` | Cluster.`updateFrom​(Cluster other)` | Update the assignments and status from the other cluster.

    Constructors in org.apache.storm.scheduler with parameters of type Cluster
    Constructor | Description
    --- | ---
    `Cluster​(Cluster src)` | Copy constructor.
    `Cluster​(Cluster src, Topologies topologies)` | Testing Constructor that takes an existing cluster and replaces the topologies in it.
    `SingleTopologyCluster​(Cluster other, String topologyId)` | Create a new cluster that only allows modifications to a single topology.

  - ### Uses of Cluster in org.apache.storm.scheduler.blacklist

    Methods in org.apache.storm.scheduler.blacklist with parameters of type Cluster
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | BlacklistScheduler.`schedule​(Topologies topologies, Cluster cluster)` |

  - ### Uses of Cluster in org.apache.storm.scheduler.blacklist.strategies

    Methods in org.apache.storm.scheduler.blacklist.strategies with parameters of type Cluster
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected Map<String,​Set<String>>` | DefaultBlacklistStrategy.`createHostToSupervisorMap​(List<String> blacklistedNodeIds, Cluster cluster)` |
    `Set<String>` | DefaultBlacklistStrategy.`getBlacklist​(List<Map<String,​Set<Integer>>> supervisorsWithFailures, List<Map<String,​Integer>> sendAssignmentFailureCount, Cluster cluster, Topologies topologies)` |
    `Set<String>` | IBlacklistStrategy.`getBlacklist​(List<Map<String,​Set<Integer>>> badSupervisorsToleranceSlidingWindow, List<Map<String,​Integer>> sendAssignmentFailureCount, Cluster cluster, Topologies topologies)` | Get blacklist by blacklist strategy.
    `protected Set<String>` | DefaultBlacklistStrategy.`releaseBlacklistWhenNeeded​(Cluster cluster, List<String> blacklistedNodeIds)` | Decide when/if to release blacklisted hosts.
    `protected Set<String>` | RasBlacklistStrategy.`releaseBlacklistWhenNeeded​(Cluster cluster, List<String> blacklistedNodeIds)` |

  - ### Uses of Cluster in org.apache.storm.scheduler.multitenant

    Fields in org.apache.storm.scheduler.multitenant declared as Cluster
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Cluster` | NodePool.`cluster` |

    Methods in org.apache.storm.scheduler.multitenant with parameters of type Cluster
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Node.`assign​(String topId, Collection<ExecutorDetails> executors, Cluster cluster)` | Assign a free slot on the node to the following topology and executors.
    `void` | Node.`free​(WorkerSlot ws, Cluster cluster, boolean forceFree)` | Frees a single slot in this node.
    `void` | Node.`freeAllSlots​(Cluster cluster)` | Free all slots on this node.
    `void` | Node.`freeTopology​(String topId, Cluster cluster)` | Frees all the slots for a topology.
    `static Map<String,​Node>` | Node.`getAllNodesFrom​(Cluster cluster)` |
    `void` | FreePool.`init​(Cluster cluster, Map<String,​Node> nodeIdToNode)` |
    `void` | NodePool.`init​(Cluster cluster, Map<String,​Node> nodeIdToNode)` | Initialize the pool.
    `void` | MultitenantScheduler.`schedule​(Topologies topologies, Cluster cluster)` |

    Constructors in org.apache.storm.scheduler.multitenant with parameters of type Cluster
    Constructor | Description
    --- | ---
    `RoundRobinSlotScheduler​(TopologyDetails td, int slotsToUse, Cluster cluster)` | Create a new scheduler for a given topology.

  - ### Uses of Cluster in org.apache.storm.scheduler.resource

    Methods in org.apache.storm.scheduler.resource with parameters of type Cluster
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Map<String,​RasNode>` | RasNodes.`getAllNodesFrom​(Cluster cluster)` |
    `void` | User.`markTopoUnsuccess​(TopologyDetails topo, Cluster cluster, String msg)` |
    `void` | ResourceAwareScheduler.`schedule​(Topologies topologies, Cluster cluster)` |

    Constructors in org.apache.storm.scheduler.resource with parameters of type Cluster
    Constructor | Description
    --- | ---
    `RasNode​(String nodeId, SupervisorDetails sup, Cluster cluster, Map<String,​WorkerSlot> workerIdToWorker, Map<String,​Map<String,​Collection<ExecutorDetails>>> assignmentMap)` | Create a new node.
    `RasNodes​(Cluster cluster)` |

  - ### Uses of Cluster in org.apache.storm.scheduler.resource.strategies.scheduling

    Fields in org.apache.storm.scheduler.resource.strategies.scheduling declared as Cluster
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Cluster` | BaseResourceAwareStrategy.`cluster` |

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling with parameters of type Cluster
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | BaseResourceAwareStrategy.`prepareForScheduling​(Cluster cluster, TopologyDetails topologyDetails)` | Initialize instance variables as the first step in `BaseResourceAwareStrategy.schedule(Cluster, TopologyDetails)`.
    `protected void` | ConstraintSolverStrategy.`prepareForScheduling​(Cluster cluster, TopologyDetails topologyDetails)` |
    `SchedulingResult` | BaseResourceAwareStrategy.`schedule​(Cluster cluster, TopologyDetails td)` | Note that this method is not thread-safe.
    `SchedulingResult` | IStrategy.`schedule​(Cluster schedulingState, TopologyDetails td)` | This method is invoked to calculate a scheduling for topology td.
    `static boolean` | ConstraintSolverStrategy.`validateSolution​(Cluster cluster, TopologyDetails topo)` | Determines if a scheduling is valid and all constraints are satisfied (for use in testing).

  - ### Uses of Cluster in org.apache.storm.scheduler.resource.strategies.scheduling.sorter

    Fields in org.apache.storm.scheduler.resource.strategies.scheduling.sorter declared as Cluster
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Cluster` | NodeSorter.`cluster` |
    `protected Cluster` | NodeSorterHostProximity.`cluster` |

    Constructors in org.apache.storm.scheduler.resource.strategies.scheduling.sorter with parameters of type Cluster
    Constructor | Description
    --- | ---
    `ExecSorterByConstraintSeverity​(Cluster cluster, TopologyDetails topologyDetails)` |
    `NodeSorter​(Cluster cluster, TopologyDetails topologyDetails, BaseResourceAwareStrategy.NodeSortType nodeSortType)` | Initialize for the default implementation node sorting.
    `NodeSorterHostProximity​(Cluster cluster, TopologyDetails topologyDetails)` |
    `NodeSorterHostProximity​(Cluster cluster, TopologyDetails topologyDetails, BaseResourceAwareStrategy.NodeSortType nodeSortType)` | Initialize for the default implementation node sorting.