package backtype.storm.scheduler;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
public interface INimbus {
void prepare(Map stormConf, String schedulerLocalDir);
/**
* Returns all slots that are available for the next round of scheduling. A
* slot is available for scheduling if it is free and can be assigned to, or
* if it is used and can be reassigned.
*/
Collection<WorkerSlot> allSlotsAvailableForScheduling(
Collection<SupervisorDetails> existingSupervisors,
Topologies topologies, Set<String> topologiesMissingAssignments);
// this is called after the assignment is changed in ZK
void assignSlots(Topologies topologies,
Map<String, Collection<WorkerSlot>> newSlotsByTopologyId);
// map from node id to supervisor details
String getHostName(Map<String, SupervisorDetails> existingSupervisors,
String nodeId);
IScheduler getForcedScheduler();
}