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/AppInfo.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/AppInfo.java index c5c02a8..0d31a02 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/AppInfo.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/AppInfo.java @@ -82,6 +82,7 @@ protected long elapsedTime; protected String amContainerLogs; protected String amHostHttpAddress; + private String amRPCAddress; protected long allocatedMB; protected long allocatedVCores; protected int runningContainers; @@ -167,6 +168,7 @@ public AppInfo(ResourceManager rm, RMApp app, Boolean hasAccess, schemePrefix + masterContainer.getNodeHttpAddress(), masterContainer.getId().toString(), app.getUser()); this.amHostHttpAddress = masterContainer.getNodeHttpAddress(); + this.amRPCAddress = attempt.getHost() + ":" + attempt.getRpcPort(); } ApplicationResourceUsageReport resourceReport = attempt @@ -281,6 +283,10 @@ public String getAMHostHttpAddress() { return this.amHostHttpAddress; } + public String getAmRPCAddress() { + return amRPCAddress; + } + public boolean amContainerLogsExist() { return this.amContainerLogsExist; } 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/TestRMWebServicesApps.java b/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 4f99c5c..d0e299c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java @@ -1319,14 +1319,15 @@ public void verifyAppsXML(NodeList nodes, RMApp app) throws JSONException, WebServicesTestUtils.getXmlString(element, "logAggregationStatus"), WebServicesTestUtils.getXmlBoolean(element, "unmanagedApplication"), WebServicesTestUtils.getXmlString(element, "appNodeLabelExpression"), - WebServicesTestUtils.getXmlString(element, "amNodeLabelExpression")); + WebServicesTestUtils.getXmlString(element, "amNodeLabelExpression"), + WebServicesTestUtils.getXmlString(element, "amRPCAddress")); } } public void verifyAppInfo(JSONObject info, RMApp app) throws JSONException, Exception { - int expectedNumberOfElements = 32; + int expectedNumberOfElements = 33; String appNodeLabelExpression = null; String amNodeLabelExpression = null; if (app.getApplicationSubmissionContext() @@ -1360,7 +1361,8 @@ public void verifyAppInfo(JSONObject info, RMApp app) throws JSONException, info.getString("logAggregationStatus"), info.getBoolean("unmanagedApplication"), appNodeLabelExpression, - amNodeLabelExpression); + amNodeLabelExpression, + info.getString("amRPCAddress")); } public void verifyAppInfoGeneric(RMApp app, String id, String user, @@ -1373,9 +1375,8 @@ public void verifyAppInfoGeneric(RMApp app, String id, String user, int preemptedResourceMB, int preemptedResourceVCores, int numNonAMContainerPreempted, int numAMContainerPreempted, String logAggregationStatus, boolean unmanagedApplication, - String appNodeLabelExpression, String amNodeLabelExpression) - throws JSONException, - Exception { + String appNodeLabelExpression, String amNodeLabelExpression, + String amRPCAddress) throws JSONException, Exception { WebServicesTestUtils.checkStringMatch("id", app.getApplicationId() .toString(), id); @@ -1436,6 +1437,10 @@ public void verifyAppInfoGeneric(RMApp app, String id, String user, assertEquals("unmanagedApplication doesn't match", app.getAMResourceRequest().getNodeLabelExpression(), amNodeLabelExpression); + RMAppAttempt currentAttempt = app.getCurrentAppAttempt(); + WebServicesTestUtils.checkStringMatch("amRPCAddress", + currentAttempt.getHost() + ":" + currentAttempt.getRpcPort(), + amRPCAddress); } @Test