Github user revans2 commented on a diff in the pull request: https://github.com/apache/storm/pull/2385#discussion_r149162183 --- Diff: storm-server/src/main/java/org/apache/storm/scheduler/Cluster.java --- @@ -993,6 +1045,31 @@ public WorkerResources getWorkerResources(WorkerSlot ws) { } @Override + public Map<String, Double> getAllScheduledResourcesForNode(String nodeId) { + Map<String, Double> totalScheduledResources = new HashMap<>(); + for (SchedulerAssignmentImpl assignment : assignments.values()) { + for (Entry<WorkerSlot, WorkerResources> entry : + assignment.getScheduledResources().entrySet()) { + if (nodeId.equals(entry.getKey().getNodeId())) { + WorkerResources resources = entry.getValue(); + for (Map.Entry<String, Double> resourceEntry : resources.get_resources().entrySet()) { + Double currentResourceValue = totalScheduledResources.containsKey(resourceEntry.getKey()) ? totalScheduledResources.get(resourceEntry.getKey()) : 0.0; + totalScheduledResources.put(resourceEntry.getKey().toString(), currentResourceValue + ObjectReader.getDouble(resourceEntry.getValue())); --- End diff -- Why calling toString on a String?
---