@Override public void schedule(Topologies topologies, Cluster cluster) { Map<String, User> userMap = getUsers(cluster); List<TopologyDetails> orderedTopologies = new ArrayList<>(schedulingPriorityStrategy.getOrderedTopologies(cluster, userMap)); if (LOG.isDebugEnabled()) { LOG.debug("Ordered list of topologies is: {}", orderedTopologies.stream().map((t) -> t.getId()).collect(Collectors.toList())); } for (TopologyDetails td : orderedTopologies) { if (!cluster.needsSchedulingRas(td)) { //cluster forgets about its previous status, so if it is scheduled just leave it. cluster.setStatusIfAbsent(td.getId(), "Fully Scheduled"); } else { User submitter = userMap.get(td.getTopologySubmitter()); scheduleTopology(td, cluster, submitter, orderedTopologies); } } }
private void initialize(Topologies topologies, Cluster cluster) { Map<String, User> userMap = getUsers(topologies, cluster); this.schedulingState = new SchedulingState(userMap, cluster, topologies, this.conf); }