diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerHealthInfo.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerHealthInfo.java index 652c91b..164c678 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerHealthInfo.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerHealthInfo.java @@ -34,6 +34,7 @@ @XmlAccessorType(XmlAccessType.FIELD) public static class OperationInformation { + String operation; String nodeId; String containerId; String queue; @@ -41,7 +42,9 @@ OperationInformation() { } - OperationInformation(SchedulerHealth.DetailedInformation di) { + OperationInformation(String operation, + SchedulerHealth.DetailedInformation di) { + this.operation = operation; this.nodeId = di.getNodeId() == null ? "N/A" : di.getNodeId().toString(); this.containerId = di.getContainerId() == null ? "N/A" : di.getContainerId().toString(); @@ -90,7 +93,7 @@ public ResourceInfo getResources() { } long lastrun; - Map operationsInfo; + List operationsInfo; List lastRunDetails; CapacitySchedulerHealthInfo() { @@ -103,15 +106,15 @@ public long getLastrun() { CapacitySchedulerHealthInfo(CapacityScheduler cs) { SchedulerHealth ht = cs.getSchedulerHealth(); lastrun = ht.getLastSchedulerRunTime(); - operationsInfo = new HashMap<>(); - operationsInfo.put("last-allocation", - new OperationInformation(ht.getLastAllocationDetails())); - operationsInfo.put("last-release", - new OperationInformation(ht.getLastReleaseDetails())); - operationsInfo.put("last-preemption", - new OperationInformation(ht.getLastPreemptionDetails())); - operationsInfo.put("last-reservation", - new OperationInformation(ht.getLastReservationDetails())); + operationsInfo = new ArrayList<>(); + operationsInfo.add(new OperationInformation("last-allocation", + ht.getLastAllocationDetails())); + operationsInfo.add( + new OperationInformation("last-release", ht.getLastReleaseDetails())); + operationsInfo.add(new OperationInformation("last-preemption", + ht.getLastPreemptionDetails())); + operationsInfo.add(new OperationInformation("last-reservation", + ht.getLastReservationDetails())); lastRunDetails = new ArrayList<>(); lastRunDetails.add(new LastRunDetails("releases", ht.getReleaseCount(), ht diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java index 9379367..c3fda79 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java @@ -325,6 +325,8 @@ private void verifyClusterScheduler(JSONObject json) throws JSONException, JSONObject health = info.getJSONObject("health"); assertNotNull(health); assertEquals("incorrect number of elements", 3, health.length()); + JSONArray operationsInfo = health.getJSONArray("operationsInfo"); + assertEquals("incorrect number of elements", 4, operationsInfo.length()); JSONArray arr = info.getJSONObject("queues").getJSONArray("queue"); assertEquals("incorrect number of elements", 2, arr.length());