goiri commented on code in PR #4396:
URL: https://github.com/apache/hadoop/pull/4396#discussion_r892834467
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestFederationClientInterceptor.java:
##########
@@ -898,4 +914,147 @@ public void testGetResourceTypeInfoRequest() throws
Exception {
interceptor.getResourceTypeInfo(GetAllResourceTypeInfoRequest.newInstance());
Assert.assertEquals(2, response.getResourceTypeInfo().size());
}
+
+ @Test
+ public void testFailApplicationAttempt() throws Exception {
+ LOG.info("Test FederationClientInterceptor : Fail Application Attempt
request.");
+
+ // null request
+ LambdaTestUtils.intercept(YarnException.class, "Missing
failApplicationAttempt request " +
+ "or applicationId or applicationAttemptId information.",
+ () -> interceptor.failApplicationAttempt(null));
+
+ // normal request
+ ApplicationId appId =
ApplicationId.newInstance(System.currentTimeMillis(), 1);
+ SubmitApplicationRequest request = mockSubmitApplicationRequest(appId);
+
+ // Submit the application
+ SubmitApplicationResponse response =
interceptor.submitApplication(request);
+
+ Assert.assertNotNull(response);
+ Assert.assertNotNull(stateStoreUtil.queryApplicationHomeSC(appId));
+
+ SubClusterId subClusterId =
interceptor.getApplicationHomeSubCluster(appId);
+ Assert.assertNotNull(subClusterId);
+
+ MockRM mockRM = interceptor.getMockRMs().get(subClusterId);
+ mockRM.waitForState(appId, RMAppState.ACCEPTED);
+ RMApp rmApp = mockRM.getRMContext().getRMApps().get(appId);
+ mockRM.waitForState(rmApp.getCurrentAppAttempt().getAppAttemptId(),
+ RMAppAttemptState.SCHEDULED);
+
+ // Call GetApplicationAttempts
+ GetApplicationAttemptsRequest attemptsRequest =
+ GetApplicationAttemptsRequest.newInstance(appId);
+ GetApplicationAttemptsResponse attemptsResponse =
+ interceptor.getApplicationAttempts(attemptsRequest);
+ Assert.assertNotNull(attemptsResponse);
+
+ ApplicationAttemptId attemptId =
attemptsResponse.getApplicationAttemptList().
+ get(0).getApplicationAttemptId();
+
+ FailApplicationAttemptRequest requestFailAppAttempt =
+ FailApplicationAttemptRequest.newInstance(attemptId);
+ FailApplicationAttemptResponse responseFailAppAttempt =
+ interceptor.failApplicationAttempt(requestFailAppAttempt);
+
+ Assert.assertNotNull(responseFailAppAttempt);
+ }
+
+ @Test
+ public void testUpdateApplicationPriority() throws Exception {
+ LOG.info("Test FederationClientInterceptor : Update Application Priority
request.");
+
+ // null request
+ LambdaTestUtils.intercept(YarnException.class, "Missing
updateApplicationPriority request " +
+ "or applicationId or applicationPriority information.",
+ () -> interceptor.updateApplicationPriority(null));
+
+ // normal request
+ ApplicationId appId =
ApplicationId.newInstance(System.currentTimeMillis(), 1);
+ SubmitApplicationRequest request = mockSubmitApplicationRequest(appId);
+
+ // Submit the application
+ SubmitApplicationResponse response =
interceptor.submitApplication(request);
+
+ Assert.assertNotNull(response);
+ Assert.assertNotNull(stateStoreUtil.queryApplicationHomeSC(appId));
+
+ SubClusterId subClusterId =
interceptor.getApplicationHomeSubCluster(appId);
+ Assert.assertNotNull(subClusterId);
+
+ MockRM mockRM = interceptor.getMockRMs().get(subClusterId);
+ mockRM.waitForState(appId, RMAppState.ACCEPTED);
+ RMApp rmApp = mockRM.getRMContext().getRMApps().get(appId);
+ mockRM.waitForState(rmApp.getCurrentAppAttempt().getAppAttemptId(),
+ RMAppAttemptState.SCHEDULED);
+
+ // Call GetApplicationAttempts
+ GetApplicationAttemptsRequest attemptsRequest =
+ GetApplicationAttemptsRequest.newInstance(appId);
+ GetApplicationAttemptsResponse attemptsResponse =
+ interceptor.getApplicationAttempts(attemptsRequest);
+ Assert.assertNotNull(attemptsResponse);
+
+ Priority priority = Priority.newInstance(20);
+ UpdateApplicationPriorityRequest requestUpdateAppPriority =
+ UpdateApplicationPriorityRequest.newInstance(appId, priority);
+ UpdateApplicationPriorityResponse responseAppPriority =
+ interceptor.updateApplicationPriority(requestUpdateAppPriority);
+
+ Assert.assertNotNull(responseAppPriority);
+ Assert.assertEquals(20,
+ responseAppPriority.getApplicationPriority().getPriority());
+ }
+
+ @Test
+ public void testUpdateApplicationTimeouts() throws Exception {
+ LOG.info("Test FederationClientInterceptor : Update Application Timeouts
request.");
+
+ // null request
+ LambdaTestUtils.intercept(YarnException.class, "Missing
updateApplicationTimeouts request " +
+ "or applicationId or applicationTimeouts information.",
+ () -> interceptor.updateApplicationTimeouts(null));
+
+ // normal request
+ ApplicationId appId =
ApplicationId.newInstance(System.currentTimeMillis(), 1);
+ SubmitApplicationRequest request = mockSubmitApplicationRequest(appId);
+
+ // Submit the application
+ SubmitApplicationResponse response =
interceptor.submitApplication(request);
+
+ Assert.assertNotNull(response);
+ Assert.assertNotNull(stateStoreUtil.queryApplicationHomeSC(appId));
+
+ SubClusterId subClusterId =
interceptor.getApplicationHomeSubCluster(appId);
+ Assert.assertNotNull(subClusterId);
+
+ MockRM mockRM = interceptor.getMockRMs().get(subClusterId);
+ mockRM.waitForState(appId, RMAppState.ACCEPTED);
+ RMApp rmApp = mockRM.getRMContext().getRMApps().get(appId);
+ mockRM.waitForState(rmApp.getCurrentAppAttempt().getAppAttemptId(),
+ RMAppAttemptState.SCHEDULED);
+
+ // Call GetApplicationAttempts
+ GetApplicationAttemptsRequest attemptsRequest =
+ GetApplicationAttemptsRequest.newInstance(appId);
+ GetApplicationAttemptsResponse attemptsResponse =
+ interceptor.getApplicationAttempts(attemptsRequest);
+ Assert.assertNotNull(attemptsResponse);
+
+ String formatISO8601 =
Review Comment:
This probably should have "time" in the var name.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]