private void updateSupervisorsResources(Cluster cluster, Topologies topologies) { Map<String, Double[]> supervisors_resources = new HashMap<String, Double[]>(); Map<String, RAS_Node> nodes = RAS_Nodes.getAllNodesFrom(cluster, topologies); for (Map.Entry<String, RAS_Node> entry : nodes.entrySet()) { RAS_Node node = entry.getValue(); Double totalMem = node.getTotalMemoryResources(); Double totalCpu = node.getTotalCpuResources(); Double usedMem = totalMem - node.getAvailableMemoryResources(); Double usedCpu = totalCpu - node.getAvailableCpuResources(); Double[] resources = {totalMem, totalCpu, usedMem, usedCpu}; supervisors_resources.put(entry.getKey(), resources); } cluster.setSupervisorsResourcesMap(supervisors_resources); }
private void updateChanges(Cluster cluster, Topologies topologies) { //Cannot simply set this.cluster=schedulingState.cluster since clojure is immutable cluster.setAssignments(schedulingState.cluster.getAssignments()); cluster.setBlacklistedHosts(schedulingState.cluster.getBlacklistedHosts()); cluster.setStatusMap(schedulingState.cluster.getStatusMap()); cluster.setSupervisorsResourcesMap(schedulingState.cluster.getSupervisorsResourcesMap()); cluster.setTopologyResourcesMap(schedulingState.cluster.getTopologyResourcesMap()); cluster.setWorkerResourcesMap(schedulingState.cluster.getWorkerResourcesMap()); //updating resources used by supervisor updateSupervisorsResources(cluster, topologies); }