slfan1989 commented on code in PR #4757:
URL: https://github.com/apache/hadoop/pull/4757#discussion_r949815067
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/webapp/MockDefaultRequestInterceptorREST.java:
##########
@@ -661,4 +683,108 @@ public Response updateAppQueue(AppQueue targetQueue,
HttpServletRequest hsr, Str
AppQueue targetAppQueue = new AppQueue(targetQueue.getQueue());
return Response.status(Status.OK).entity(targetAppQueue).build();
}
+
+ public void updateApplicationState(YarnApplicationState appState, String
appId)
+ throws AuthorizationException, YarnException, InterruptedException,
IOException {
+ validateRunning();
+ ApplicationId applicationId = ApplicationId.fromString(appId);
+ if (!applicationMap.containsKey(applicationId)) {
+ throw new NotFoundException("app with id: " + appId + " not found");
+ }
+ ApplicationReport appReport = applicationMap.get(applicationId);
+ appReport.setYarnApplicationState(appState);
+ }
+
+ @Override
+ public ApplicationStatisticsInfo getAppStatistics(
+ HttpServletRequest hsr, Set<String> stateQueries, Set<String>
typeQueries) {
+ if (!isRunning) {
+ throw new RuntimeException("RM is stopped");
+ }
+
+ Map<String, StatisticsItemInfo> itemInfoMap = new HashMap<>();
+
+ for (HashMap.Entry<ApplicationId, ApplicationReport> item :
applicationMap.entrySet()) {
+
+ ApplicationReport applicationReport = item.getValue();
+ YarnApplicationState appState =
applicationReport.getYarnApplicationState();
+ String appType = applicationReport.getApplicationType();
+
+ if (stateQueries.contains(appState.name()) &&
typeQueries.contains(appType)) {
+ String itemInfoMapKey = appState.toString() + "_" + appType;
+ StatisticsItemInfo itemInfo = itemInfoMap.getOrDefault(itemInfoMapKey,
null);
+ if (itemInfo == null) {
+ itemInfo = new StatisticsItemInfo(appState, appType, 1);
+ } else {
+ long newCount = itemInfo.getCount() + 1;
+ itemInfo.setCount(newCount);
+ }
+ itemInfoMap.put(itemInfoMapKey, itemInfo);
+ }
+ }
+
+ ArrayList<StatisticsItemInfo> itemInfos = new
ArrayList<>(itemInfoMap.values());
+
+ return new ApplicationStatisticsInfo(itemInfos);
Review Comment:
I will fix it.
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/webapp/MockDefaultRequestInterceptorREST.java:
##########
@@ -661,4 +683,108 @@ public Response updateAppQueue(AppQueue targetQueue,
HttpServletRequest hsr, Str
AppQueue targetAppQueue = new AppQueue(targetQueue.getQueue());
return Response.status(Status.OK).entity(targetAppQueue).build();
}
+
+ public void updateApplicationState(YarnApplicationState appState, String
appId)
+ throws AuthorizationException, YarnException, InterruptedException,
IOException {
+ validateRunning();
+ ApplicationId applicationId = ApplicationId.fromString(appId);
+ if (!applicationMap.containsKey(applicationId)) {
+ throw new NotFoundException("app with id: " + appId + " not found");
+ }
+ ApplicationReport appReport = applicationMap.get(applicationId);
+ appReport.setYarnApplicationState(appState);
+ }
+
+ @Override
+ public ApplicationStatisticsInfo getAppStatistics(
+ HttpServletRequest hsr, Set<String> stateQueries, Set<String>
typeQueries) {
+ if (!isRunning) {
+ throw new RuntimeException("RM is stopped");
+ }
+
+ Map<String, StatisticsItemInfo> itemInfoMap = new HashMap<>();
+
+ for (HashMap.Entry<ApplicationId, ApplicationReport> item :
applicationMap.entrySet()) {
+
+ ApplicationReport applicationReport = item.getValue();
+ YarnApplicationState appState =
applicationReport.getYarnApplicationState();
+ String appType = applicationReport.getApplicationType();
+
+ if (stateQueries.contains(appState.name()) &&
typeQueries.contains(appType)) {
+ String itemInfoMapKey = appState.toString() + "_" + appType;
+ StatisticsItemInfo itemInfo = itemInfoMap.getOrDefault(itemInfoMapKey,
null);
+ if (itemInfo == null) {
+ itemInfo = new StatisticsItemInfo(appState, appType, 1);
+ } else {
+ long newCount = itemInfo.getCount() + 1;
+ itemInfo.setCount(newCount);
+ }
+ itemInfoMap.put(itemInfoMapKey, itemInfo);
+ }
+ }
+
+ ArrayList<StatisticsItemInfo> itemInfos = new
ArrayList<>(itemInfoMap.values());
+
+ return new ApplicationStatisticsInfo(itemInfos);
+ }
+
+ @Override
+ public AppActivitiesInfo getAppActivities(
+ HttpServletRequest hsr, String appId, String time, Set<String>
requestPriorities,
+ Set<String> allocationRequestIds, String groupBy, String limit,
Set<String> actions,
+ boolean summarize) {
+ if (!isRunning) {
+ throw new RuntimeException("RM is stopped");
+ }
+
+ ApplicationId applicationId = ApplicationId.fromString(appId);
+ if (!applicationMap.containsKey(applicationId)) {
+ throw new NotFoundException("app with id: " + appId + " not found");
+ }
+
+ SchedulerNode schedulerNode =
Review Comment:
I will fix it.
--
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]