[
https://issues.apache.org/jira/browse/YARN-11219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17581679#comment-17581679
]
ASF GitHub Bot commented on YARN-11219:
---------------------------------------
slfan1989 commented on code in PR #4757:
URL: https://github.com/apache/hadoop/pull/4757#discussion_r949814907
##########
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:
Thank you for your suggestion, I will modify the code.
> [Federation] Add getAppActivities, getAppStatistics REST APIs for Router
> ------------------------------------------------------------------------
>
> Key: YARN-11219
> URL: https://issues.apache.org/jira/browse/YARN-11219
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: federation
> Affects Versions: 3.4.0
> Reporter: fanshilun
> Assignee: fanshilun
> Priority: Major
> Labels: pull-request-available
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]