Skip to content

Commit 0649332

Browse files
author
slfan1989
committed
YARN-11320. Fix CheckStyle.
1 parent 1674717 commit 0649332

File tree

9 files changed

+144
-71
lines changed

9 files changed

+144
-71
lines changed

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerInfo.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public CapacitySchedulerInfo(CSQueue parent, CapacityScheduler cs) {
121121
.getAutoCreationEligibility(parent);
122122

123123
defaultNodeLabelExpression = parent.getDefaultNodeLabelExpression();
124+
schedulerName = "Capacity Scheduler";
124125
}
125126

126127
public float getCapacity() {

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/FairSchedulerInfo.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public FairSchedulerInfo(FairScheduler fs) {
4545
scheduler = fs;
4646
rootQueue = new FairSchedulerQueueInfo(scheduler.getQueueManager().
4747
getRootQueue(), scheduler);
48+
schedulerName = "Fair Scheduler";
4849
}
4950

5051
/**

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/FifoSchedulerInfo.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ public FifoSchedulerInfo(final ResourceManager rm) {
8484
this.totalNodeCapacity += ni.getTotalCapability().getMemorySize();
8585
this.numContainers += fs.getNodeReport(ni.getNodeID()).getNumContainers();
8686
}
87+
88+
this.schedulerName = "Fifo Scheduler";
8789
}
8890

8991
public int getNumNodes() {

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/SchedulerInfo.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@
3232
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler;
3333

3434
@XmlRootElement
35-
@XmlSeeAlso({ CapacitySchedulerInfo.class, FairSchedulerInfo.class, FifoSchedulerInfo.class })
35+
@XmlSeeAlso({ CapacitySchedulerInfo.class, FairSchedulerInfo.class,
36+
FifoSchedulerInfo.class })
3637
public class SchedulerInfo {
37-
private String schedulerName;
38-
private ResourceInfo minAllocResource;
39-
private ResourceInfo maxAllocResource;
40-
private EnumSet<SchedulerResourceTypes> schedulingResourceTypes;
41-
private int maximumClusterPriority;
38+
protected String schedulerName;
39+
protected ResourceInfo minAllocResource;
40+
protected ResourceInfo maxAllocResource;
41+
protected EnumSet<SchedulerResourceTypes> schedulingResourceTypes;
42+
protected int maximumClusterPriority;
4243

4344
// JAXB needs this
4445
public SchedulerInfo() {

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/RouterMetrics.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ public final class RouterMetrics {
135135
private MutableGaugeInt numRenewDelegationTokenFailedRetrieved;
136136
@Metric("# of renewDelegationToken failed to be retrieved")
137137
private MutableGaugeInt numCancelDelegationTokenFailedRetrieved;
138+
@Metric("# of getSchedulerInfo failed to be retrieved")
139+
private MutableGaugeInt numGetSchedulerInfoFailedRetrieved;
138140

139141
// Aggregate metrics are shared, and don't have to be looked up per call
140142
@Metric("Total number of successful Submitted apps and latency(ms)")
@@ -232,6 +234,9 @@ public final class RouterMetrics {
232234
@Metric("Total number of successful Retrieved CancelDelegationToken and latency(ms)")
233235
private MutableRate totalSucceededCancelDelegationTokenRetrieved;
234236

237+
@Metric("Total number of successful Retrieved GetSchedulerInfo and latency(ms)")
238+
private MutableRate totalSucceededGetSchedulerInfoRetrieved;
239+
235240
/**
236241
* Provide quantile counters for all latencies.
237242
*/
@@ -282,6 +287,7 @@ public final class RouterMetrics {
282287
private MutableQuantiles getDelegationTokenLatency;
283288
private MutableQuantiles renewDelegationTokenLatency;
284289
private MutableQuantiles cancelDelegationTokenLatency;
290+
private MutableQuantiles getSchedulerInfoRetrievedLatency;
285291

286292
private static volatile RouterMetrics instance = null;
287293
private static MetricsRegistry registry;
@@ -456,6 +462,8 @@ private RouterMetrics() {
456462
cancelDelegationTokenLatency = registry.newQuantiles("cancelDelegationTokenLatency",
457463
"latency of cancel delegation token timeouts", "ops", "latency", 10);
458464

465+
getSchedulerInfoRetrievedLatency = registry.newQuantiles("getSchedulerInfoRetrievedLatency",
466+
"latency of get scheduler info timeouts", "ops", "latency", 10);
459467
}
460468

461469
public static RouterMetrics getMetrics() {
@@ -712,6 +720,11 @@ public long getNumSucceededCancelDelegationTokenRetrieved() {
712720
return totalSucceededCancelDelegationTokenRetrieved.lastStat().numSamples();
713721
}
714722

723+
@VisibleForTesting
724+
public long getNumSucceededGetSchedulerInfoRetrieved() {
725+
return totalSucceededGetSchedulerInfoRetrieved.lastStat().numSamples();
726+
}
727+
715728
@VisibleForTesting
716729
public double getLatencySucceededAppsCreated() {
717730
return totalSucceededAppsCreated.lastStat().mean();
@@ -947,6 +960,11 @@ public double getLatencySucceededCancelDelegationTokenRetrieved() {
947960
return totalSucceededCancelDelegationTokenRetrieved.lastStat().mean();
948961
}
949962

963+
@VisibleForTesting
964+
public double getLatencySucceededGetSchedulerInfoRetrieved() {
965+
return totalSucceededGetSchedulerInfoRetrieved.lastStat().mean();
966+
}
967+
950968
@VisibleForTesting
951969
public int getAppsFailedCreated() {
952970
return numAppsFailedCreated.value();
@@ -1157,6 +1175,10 @@ public int getCancelDelegationTokenFailedRetrieved() {
11571175
return numCancelDelegationTokenFailedRetrieved.value();
11581176
}
11591177

1178+
public int getSchedulerInfoFailedRetrieved() {
1179+
return numGetSchedulerInfoFailedRetrieved.value();
1180+
}
1181+
11601182
public void succeededAppsCreated(long duration) {
11611183
totalSucceededAppsCreated.add(duration);
11621184
getNewApplicationLatency.add(duration);
@@ -1392,6 +1414,11 @@ public void succeededCancelDelegationTokenRetrieved(long duration) {
13921414
cancelDelegationTokenLatency.add(duration);
13931415
}
13941416

1417+
public void succeededGetSchedulerInfoRetrieved(long duration) {
1418+
totalSucceededGetSchedulerInfoRetrieved.add(duration);
1419+
getSchedulerInfoRetrievedLatency.add(duration);
1420+
}
1421+
13951422
public void incrAppsFailedCreated() {
13961423
numAppsFailedCreated.incr();
13971424
}
@@ -1579,4 +1606,8 @@ public void incrRenewDelegationTokenFailedRetrieved() {
15791606
public void incrCancelDelegationTokenFailedRetrieved() {
15801607
numCancelDelegationTokenFailedRetrieved.incr();
15811608
}
1609+
1610+
public void incrGetSchedulerInfoFailedRetrieved() {
1611+
numGetSchedulerInfoFailedRetrieved.incr();
1612+
}
15821613
}

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/FederationInterceptorREST.java

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import org.apache.commons.lang3.tuple.Pair;
4848
import org.apache.hadoop.conf.Configuration;
4949
import org.apache.hadoop.security.authorize.AuthorizationException;
50-
import org.apache.hadoop.thirdparty.com.google.common.collect.Maps;
5150
import org.apache.hadoop.util.ReflectionUtils;
5251
import org.apache.hadoop.util.Sets;
5352
import org.apache.hadoop.util.Time;
@@ -68,7 +67,6 @@
6867
import org.apache.hadoop.yarn.server.federation.retry.FederationActionRetry;
6968
import org.apache.hadoop.yarn.server.federation.store.records.SubClusterId;
7069
import org.apache.hadoop.yarn.server.federation.store.records.SubClusterInfo;
71-
import org.apache.hadoop.yarn.server.federation.store.records.SubClusterState;
7270
import org.apache.hadoop.yarn.server.federation.utils.FederationStateStoreFacade;
7371
import org.apache.hadoop.yarn.server.resourcemanager.webapp.NodeIDsInfo;
7472
import org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWSConsts;
@@ -1135,38 +1133,9 @@ public ClusterUserInfo getClusterUserInfo(HttpServletRequest hsr) {
11351133
*/
11361134
@Override
11371135
public SchedulerTypeInfo getSchedulerInfo() {
1138-
11391136
try {
1140-
LOG.info("xxxx>>>>getSchedulerInfo");
11411137
long startTime = Time.now();
1142-
1143-
// Initialize subcluster information
1144-
String scAmRMAddress = "5.6.7.8:5";
1145-
String scClientRMAddress = "5.6.7.8:6";
1146-
String scRmAdminAddress = "5.6.7.8:7";
1147-
String scWebAppAddress = "127.0.0.1:8080";
1148-
1149-
// Initialize subcluster sc1
1150-
SubClusterInfo sc1 =
1151-
SubClusterInfo.newInstance(SubClusterId.newInstance("SC-1"),
1152-
scAmRMAddress, scClientRMAddress, scRmAdminAddress, scWebAppAddress,
1153-
SubClusterState.SC_RUNNING, Time.now(), "");
1154-
sc1.setLastHeartBeat(Time.now());
1155-
1156-
// Initialize subcluster sc2
1157-
SubClusterInfo sc2 =
1158-
SubClusterInfo.newInstance(SubClusterId.newInstance("SC-2"),
1159-
scAmRMAddress, scClientRMAddress, scRmAdminAddress, scWebAppAddress,
1160-
SubClusterState.SC_RUNNING, Time.now(), "");
1161-
sc2.setLastHeartBeat(Time.now());
1162-
1163-
1164-
// Map<SubClusterId, SubClusterInfo> subClustersActive = getActiveSubclusters();
1165-
Map<SubClusterId, SubClusterInfo> subClustersActive = Maps.newHashMap();
1166-
subClustersActive.put(SubClusterId.newInstance("SC-1"), sc1);
1167-
subClustersActive.put(SubClusterId.newInstance("SC-2"), sc2);
1168-
1169-
LOG.info("xxxx>>>>subClustersActive.size={}", subClustersActive.size());
1138+
Map<SubClusterId, SubClusterInfo> subClustersActive = getActiveSubclusters();
11701139
Class[] argsClasses = new Class[]{};
11711140
Object[] args = new Object[]{};
11721141
ClientMethod remoteMethod = new ClientMethod("getSchedulerInfo", argsClasses, args);
@@ -1179,16 +1148,16 @@ public SchedulerTypeInfo getSchedulerInfo() {
11791148
federationSchedulerTypeInfo.getList().add(schedulerTypeInfo);
11801149
});
11811150
long stopTime = Time.now();
1151+
routerMetrics.succeededGetSchedulerInfoRetrieved(stopTime - startTime);
11821152
return federationSchedulerTypeInfo;
11831153
} catch (NotFoundException e) {
1184-
// routerMetrics.incrCheckUserAccessToQueueFailedRetrieved();
1154+
routerMetrics.incrGetSchedulerInfoFailedRetrieved();
11851155
RouterServerUtil.logAndThrowRunTimeException("Get all active sub cluster(s) error.", e);
11861156
} catch (YarnException | IOException e) {
1187-
// routerMetrics.incrCheckUserAccessToQueueFailedRetrieved();
1157+
routerMetrics.incrGetSchedulerInfoFailedRetrieved();
11881158
RouterServerUtil.logAndThrowRunTimeException("getSchedulerInfo error.", e);
11891159
}
1190-
1191-
// routerMetrics.incrCheckUserAccessToQueueFailedRetrieved();
1160+
routerMetrics.incrGetSchedulerInfoFailedRetrieved();
11921161
throw new RuntimeException("getSchedulerInfo error.");
11931162
}
11941163

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/dao/FederationSchedulerTypeInfo.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
/**
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
* <p>
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
* <p>
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
118
package org.apache.hadoop.yarn.server.router.webapp.dao;
219

320
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedulerTypeInfo;

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/webapp/MockDefaultRequestInterceptorREST.java

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -88,38 +88,11 @@
8888
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityDiagnosticConstant;
8989
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityState;
9090
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities.ActivityLevel;
91-
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler;
92-
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerConfiguration;
93-
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue;
94-
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.TestUtils;
91+
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.*;
9592
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp;
9693
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerNode;
9794
import org.apache.hadoop.yarn.server.resourcemanager.webapp.NodeIDsInfo;
98-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NodeLabelsInfo;
99-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.LabelsToNodesInfo;
100-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppInfo;
101-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppState;
102-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ApplicationSubmissionContextInfo;
103-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppsInfo;
104-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ClusterMetricsInfo;
105-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NewApplication;
106-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NodeInfo;
107-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NodesInfo;
108-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ResourceInfo;
109-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ResourceOptionInfo;
110-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NodeToLabelsInfo;
111-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NodeLabelInfo;
112-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppAttemptsInfo;
113-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppTimeoutInfo;
114-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppTimeoutsInfo;
115-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppPriority;
116-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppQueue;
117-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.StatisticsItemInfo;
118-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ApplicationStatisticsInfo;
119-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.AppActivitiesInfo;
120-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ReservationListInfo;
121-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.PartitionInfo;
122-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.RMQueueAclInfo;
95+
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.*;
12396
import org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebServices;
12497
import org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey;
12598
import org.apache.hadoop.yarn.server.webapp.dao.AppAttemptInfo;
@@ -1039,4 +1012,17 @@ public RMQueueAclInfo checkUserAccessToQueue(
10391012
return new RMQueueAclInfo(true, user.getUserName(), "");
10401013
}
10411014
}
1015+
1016+
@Override
1017+
public SchedulerTypeInfo getSchedulerInfo() {
1018+
try {
1019+
ResourceManager mockRM = CapacitySchedulerTestUtilities.createResourceManager();
1020+
CapacityScheduler cs = (CapacityScheduler) mockRM.getResourceScheduler();
1021+
CSQueue root = cs.getRootQueue();
1022+
SchedulerInfo schedulerInfo = new CapacitySchedulerInfo(root, cs);
1023+
return new SchedulerTypeInfo(schedulerInfo);
1024+
} catch (Exception e) {
1025+
throw new RuntimeException(e);
1026+
}
1027+
}
10421028
}

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/webapp/TestFederationInterceptorREST.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Set;
2828
import java.util.HashSet;
2929
import java.util.Collections;
30+
import java.util.stream.Collectors;
3031

3132
import javax.servlet.http.HttpServletRequest;
3233
import javax.ws.rs.core.Response;
@@ -36,6 +37,7 @@
3637
import org.apache.hadoop.test.LambdaTestUtils;
3738
import org.apache.hadoop.conf.Configuration;
3839
import org.apache.hadoop.http.HttpConfig;
40+
import org.apache.hadoop.util.Lists;
3941
import org.apache.hadoop.util.Time;
4042
import org.apache.hadoop.yarn.api.records.ApplicationId;
4143
import org.apache.hadoop.yarn.api.records.ReservationId;
@@ -94,9 +96,15 @@
9496
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ReservationDefinitionInfo;
9597
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ReservationRequestsInfo;
9698
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ReservationRequestInfo;
99+
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedulerTypeInfo;
100+
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedulerInfo;
101+
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerInfo;
102+
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerQueueInfoList;
103+
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CapacitySchedulerQueueInfo;
97104
import org.apache.hadoop.yarn.server.webapp.dao.ContainerInfo;
98105
import org.apache.hadoop.yarn.server.webapp.dao.ContainersInfo;
99106
import org.apache.hadoop.yarn.server.router.webapp.dao.FederationRMQueueAclInfo;
107+
import org.apache.hadoop.yarn.server.router.webapp.dao.FederationSchedulerTypeInfo;
100108
import org.apache.hadoop.yarn.util.LRUCacheHashMap;
101109
import org.apache.hadoop.yarn.util.MonotonicClock;
102110
import org.apache.hadoop.yarn.util.Times;
@@ -1281,4 +1289,61 @@ public void testCheckFederationInterceptorRESTClient() {
12811289
Assert.assertNotNull(interceptorREST.getClient());
12821290
Assert.assertEquals(webAppAddress, interceptorREST.getWebAppAddress());
12831291
}
1292+
1293+
@Test
1294+
public void testGetSchedulerInfo() {
1295+
// In this test case, we will get the return results of 4 sub-clusters.
1296+
SchedulerTypeInfo typeInfo = interceptor.getSchedulerInfo();
1297+
Assert.assertNotNull(typeInfo);
1298+
Assert.assertTrue(typeInfo instanceof FederationSchedulerTypeInfo);
1299+
1300+
FederationSchedulerTypeInfo federationSchedulerTypeInfo =
1301+
FederationSchedulerTypeInfo.class.cast(typeInfo);
1302+
Assert.assertNotNull(federationSchedulerTypeInfo);
1303+
List<SchedulerTypeInfo> schedulerTypeInfos = federationSchedulerTypeInfo.getList();
1304+
Assert.assertNotNull(schedulerTypeInfos);
1305+
Assert.assertEquals(4, schedulerTypeInfos.size());
1306+
List<String> subClusterIds =
1307+
subClusters.stream().map(subClusterId -> subClusterId.getId()).collect(Collectors.toList());
1308+
1309+
for (SchedulerTypeInfo schedulerTypeInfo : schedulerTypeInfos) {
1310+
Assert.assertNotNull(schedulerTypeInfo);
1311+
1312+
// 1. Whether the returned subClusterId is in the subCluster list
1313+
String subClusterId = schedulerTypeInfo.getSubClusterId();
1314+
Assert.assertTrue(subClusterIds.contains(subClusterId));
1315+
1316+
// 2. We test CapacityScheduler, the returned type should be CapacityScheduler.
1317+
SchedulerInfo schedulerInfo = schedulerTypeInfo.getSchedulerInfo();
1318+
Assert.assertNotNull(schedulerInfo);
1319+
Assert.assertTrue(schedulerInfo instanceof CapacitySchedulerInfo);
1320+
CapacitySchedulerInfo capacitySchedulerInfo =
1321+
CapacitySchedulerInfo.class.cast(schedulerInfo);
1322+
Assert.assertNotNull(capacitySchedulerInfo);
1323+
1324+
// 3. The parent queue name should be root
1325+
String queueName = capacitySchedulerInfo.getQueueName();
1326+
Assert.assertEquals("root", queueName);
1327+
1328+
// 4. schedulerType should be CapacityScheduler
1329+
String schedulerType = capacitySchedulerInfo.getSchedulerType();
1330+
Assert.assertEquals("Capacity Scheduler", schedulerType);
1331+
1332+
// 5. queue path should be root
1333+
String queuePath = capacitySchedulerInfo.getQueuePath();
1334+
Assert.assertEquals("root", queuePath);
1335+
1336+
// 6. mockRM has 2 test queues, [root.a, root.b]
1337+
List<String> queues = Lists.newArrayList("root.a", "root.b");
1338+
CapacitySchedulerQueueInfoList csSchedulerQueueInfoList = capacitySchedulerInfo.getQueues();
1339+
Assert.assertNotNull(csSchedulerQueueInfoList);
1340+
List<CapacitySchedulerQueueInfo> csQueueInfoList =
1341+
csSchedulerQueueInfoList.getQueueInfoList();
1342+
Assert.assertEquals(2, csQueueInfoList.size());
1343+
for (CapacitySchedulerQueueInfo csQueueInfo : csQueueInfoList) {
1344+
Assert.assertNotNull(csQueueInfo);
1345+
Assert.assertTrue(queues.contains(csQueueInfo.getQueuePath()));
1346+
}
1347+
}
1348+
}
12841349
}

0 commit comments

Comments
 (0)