diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java index f11939a..79540e7 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppInfo.java @@ -37,6 +37,7 @@ import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.api.records.ResourceRequest; import org.apache.hadoop.yarn.api.records.YarnApplicationState; +import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppMetrics; @@ -79,7 +80,7 @@ protected String trackingUI; protected String trackingUrl; protected String diagnostics; - protected long clusterId; + protected long clusterTimestamp; protected String applicationType; protected String applicationTags = ""; protected int priority; @@ -121,6 +122,7 @@ protected ResourcesInfo resourceInfo = null; protected AppTimeoutsInfo timeouts = new AppTimeoutsInfo(); + protected String subclusterId; public AppInfo() { } // JAXB needs this @@ -174,7 +176,7 @@ public AppInfo(ResourceManager rm, RMApp app, Boolean hasAccess, this.applicationTags = Joiner.on(',').join(app.getApplicationTags()); } this.finalStatus = app.getFinalApplicationStatus(); - this.clusterId = ResourceManager.getClusterTimeStamp(); + this.clusterTimestamp = ResourceManager.getClusterTimeStamp(); if (hasAccess) { this.startedTime = app.getStartTime(); this.finishedTime = app.getFinishTime(); @@ -286,6 +288,7 @@ public AppInfo(ResourceManager rm, RMApp app, Boolean hasAccess, timeouts.add(timeout); } } + subclusterId = YarnConfiguration.getClusterId(rm.getConfig()); } } @@ -385,8 +388,8 @@ public boolean amContainerLogsExist() { return this.amContainerLogsExist; } - public long getClusterId() { - return this.clusterId; + public long getClusterTimestamp() { + return this.clusterTimestamp; } public String getApplicationType() { @@ -475,4 +478,8 @@ public String getAmNodeLabelExpression() { public ResourcesInfo getResourceInfo() { return resourceInfo; } + + public String getSubclusterId() { + return this.subclusterId; + } } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java index 4f7ab54..939128e 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServices.java @@ -329,7 +329,7 @@ public void verifyClusterGeneric(long clusterid, long startedon, String resourceManagerVersionBuiltOn, String resourceManagerBuildVersion, String resourceManagerVersion) { - assertEquals("clusterId doesn't match: ", + assertEquals("clusterTimestamp doesn't match: ", ResourceManager.getClusterTimeStamp(), clusterid); assertEquals("startedOn doesn't match: ", ResourceManager.getClusterTimeStamp(), startedon); diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java index 1cbdec3..8a42f20 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java @@ -93,6 +93,7 @@ protected void configureServlets() { YarnConfiguration.DEFAULT_RM_AM_MAX_ATTEMPTS); conf.setClass(YarnConfiguration.RM_SCHEDULER, FifoScheduler.class, ResourceScheduler.class); + conf.setStrings(YarnConfiguration.RM_CLUSTER_ID, "subCluster1"); rm = new MockRM(conf); bind(ResourceManager.class).toInstance(rm); serve("/*").with(GuiceContainer.class); @@ -1476,7 +1477,7 @@ public void verifyAppsXML(NodeList nodes, RMApp app, boolean hasResourceReq) WebServicesTestUtils.getXmlFloat(element, "progress"), WebServicesTestUtils.getXmlString(element, "trackingUI"), WebServicesTestUtils.getXmlString(element, "diagnostics"), - WebServicesTestUtils.getXmlLong(element, "clusterId"), + WebServicesTestUtils.getXmlLong(element, "clusterTimestamp"), WebServicesTestUtils.getXmlLong(element, "startedTime"), WebServicesTestUtils.getXmlLong(element, "finishedTime"), WebServicesTestUtils.getXmlLong(element, "elapsedTime"), @@ -1495,7 +1496,8 @@ public void verifyAppsXML(NodeList nodes, RMApp app, boolean hasResourceReq) WebServicesTestUtils.getXmlBoolean(element, "unmanagedApplication"), WebServicesTestUtils.getXmlString(element, "appNodeLabelExpression"), WebServicesTestUtils.getXmlString(element, "amNodeLabelExpression"), - WebServicesTestUtils.getXmlString(element, "amRPCAddress")); + WebServicesTestUtils.getXmlString(element, "amRPCAddress"), + WebServicesTestUtils.getXmlString(element, "subclusterId")); if (hasResourceReq) { assertEquals(element.getElementsByTagName("resourceRequests").getLength(), @@ -1528,7 +1530,7 @@ public void verifyAppsXML(NodeList nodes, RMApp app, boolean hasResourceReq) public void verifyAppInfo(JSONObject info, RMApp app, boolean hasResourceReqs) throws JSONException, Exception { - int expectedNumberOfElements = 36 + (hasResourceReqs ? 2 : 0); + int expectedNumberOfElements = 37 + (hasResourceReqs ? 2 : 0); String appNodeLabelExpression = null; String amNodeLabelExpression = null; if (app.getApplicationSubmissionContext() @@ -1553,7 +1555,7 @@ public void verifyAppInfo(JSONObject info, RMApp app, boolean hasResourceReqs) info.getString("queue"), info.getInt("priority"), info.getString("state"), info.getString("finalStatus"), (float) info.getDouble("progress"), info.getString("trackingUI"), - info.getString("diagnostics"), info.getLong("clusterId"), + info.getString("diagnostics"), info.getLong("clusterTimestamp"), info.getLong("startedTime"), info.getLong("finishedTime"), info.getLong("elapsedTime"), info.getString("amHostHttpAddress"), info.getString("amContainerLogs"), info.getInt("allocatedMB"), @@ -1568,7 +1570,8 @@ public void verifyAppInfo(JSONObject info, RMApp app, boolean hasResourceReqs) info.getBoolean("unmanagedApplication"), appNodeLabelExpression, amNodeLabelExpression, - amRPCAddress); + amRPCAddress, + info.getString("subclusterId")); if (hasResourceReqs) { verifyResourceRequests(info.getJSONArray("resourceRequests"), app); @@ -1578,7 +1581,7 @@ public void verifyAppInfo(JSONObject info, RMApp app, boolean hasResourceReqs) public void verifyAppInfoGeneric(RMApp app, String id, String user, String name, String applicationType, String queue, int prioirty, String state, String finalStatus, float progress, String trackingUI, - String diagnostics, long clusterId, long startedTime, long finishedTime, + String diagnostics, long clusterTimestamp, long startedTime, long finishedTime, long elapsedTime, String amHostHttpAddress, String amContainerLogs, int allocatedMB, int allocatedVCores, int numContainers, float queueUsagePerc, float clusterUsagePerc, @@ -1586,7 +1589,7 @@ public void verifyAppInfoGeneric(RMApp app, String id, String user, int numNonAMContainerPreempted, int numAMContainerPreempted, String logAggregationStatus, boolean unmanagedApplication, String appNodeLabelExpression, String amNodeLabelExpression, - String amRPCAddress) throws JSONException, Exception { + String amRPCAddress, String subclusterId) throws JSONException, Exception { WebServicesTestUtils.checkStringMatch("id", app.getApplicationId() .toString(), id); @@ -1607,8 +1610,8 @@ public void verifyAppInfoGeneric(RMApp app, String id, String user, } WebServicesTestUtils.checkStringEqual("diagnostics", app.getDiagnostics().toString(), diagnostics); - assertEquals("clusterId doesn't match", - ResourceManager.getClusterTimeStamp(), clusterId); + assertEquals("clusterTimestamp doesn't match", + ResourceManager.getClusterTimeStamp(), clusterTimestamp); assertEquals("startedTime doesn't match", app.getStartTime(), startedTime); assertEquals("finishedTime doesn't match", app.getFinishTime(), finishedTime); @@ -1652,6 +1655,8 @@ public void verifyAppInfoGeneric(RMApp app, String id, String user, assertEquals("amRPCAddress", AppInfo.getAmRPCAddressFromRMAppAttempt(app.getCurrentAppAttempt()), amRPCAddress); + assertEquals("subclusterId doesn't match", + YarnConfiguration.getClusterId(rm.getConfig()), subclusterId); } public void verifyResourceRequests(JSONArray resourceRequest, RMApp app) diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/webapp/TestRMWithCSRFFilter.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/webapp/TestRMWithCSRFFilter.java index 2925e84..33f334a 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/webapp/TestRMWithCSRFFilter.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/webapp/TestRMWithCSRFFilter.java @@ -149,6 +149,7 @@ public void testAllowNonBrowserInteractionWithoutHeader() throws Exception { assertEquals(MediaType.APPLICATION_XML_TYPE + "; " + JettyUtils.UTF_8, response.getType().toString()); String xml = response.getEntity(String.class); + System.out.println(xml); verifyClusterInfoXML(xml); } @@ -181,7 +182,7 @@ public void verifyClusterInfoXML(String xml) throws Exception { } } - public void verifyClusterGeneric(long clusterid, long startedon, + public void verifyClusterGeneric(long clusterTimestamp, long startedon, String state, String haState, String haZooKeeperConnectionState, String hadoopVersionBuiltOn, @@ -191,8 +192,8 @@ public void verifyClusterGeneric(long clusterid, long startedon, String resourceManagerBuildVersion, String resourceManagerVersion) { - assertEquals("clusterId doesn't match: ", - ResourceManager.getClusterTimeStamp(), clusterid); + assertEquals("clusterTimestamp doesn't match: ", + ResourceManager.getClusterTimeStamp(), clusterTimestamp); assertEquals("startedOn doesn't match: ", ResourceManager.getClusterTimeStamp(), startedon); assertTrue("stated doesn't match: " + state,