Skip to content

Commit 4721e3f

Browse files
committed
YARN-11483. Fix CheckStyle.
1 parent d789bf6 commit 4721e3f

5 files changed

Lines changed: 113 additions & 12 deletions

File tree

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestRouterCLI.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public void setup() throws Exception {
9494
return QueryFederationQueuePoliciesResponse.newInstance(1, 1, 1, 10, weights);
9595
});
9696

97+
9798
Configuration config = new Configuration();
9899
config.setBoolean(YarnConfiguration.FEDERATION_ENABLED, true);
99100

@@ -271,7 +272,7 @@ public void testListPolicies() throws Exception {
271272
@Test
272273
public void testBuildHelpMsg() throws Exception {
273274
Map<String, RouterCLI.RouterCmdUsageInfos> adminUsage = rmAdminCLI.getAdminUsage();
274-
assertEquals(2, adminUsage.size());
275+
assertEquals(3, adminUsage.size());
275276

276277
RouterCLI.RouterCmdUsageInfos deregisterSubClusterUsageInfos =
277278
adminUsage.get("-deregisterSubCluster");
@@ -291,5 +292,11 @@ public void testBuildHelpMsg() throws Exception {
291292
policyExamplesMap.forEach((cmd, cmdExamples) -> {
292293
assertEquals(2, cmdExamples.size());
293294
});
295+
296+
RouterCLI.RouterCmdUsageInfos applicationUsageInfos = adminUsage.get("-application");
297+
assertNotNull(applicationUsageInfos);
298+
Map<String, List<String>> applicationExamplesMap = applicationUsageInfos.getExamples();
299+
assertNotNull(applicationExamplesMap);
300+
assertEquals(1, applicationExamplesMap.size());
294301
}
295302
}

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/DeleteFederationApplicationResponsePBImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.hadoop.thirdparty.protobuf.TextFormat;
2424
import org.apache.hadoop.yarn.proto.YarnServerResourceManagerServiceProtos.DeleteFederationApplicationResponseProto;
2525
import org.apache.hadoop.yarn.proto.YarnServerResourceManagerServiceProtos.DeleteFederationApplicationResponseProtoOrBuilder;
26-
import org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationRequest;
2726
import org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationResponse;
2827

2928
@Private
@@ -57,7 +56,7 @@ public int hashCode() {
5756

5857
@Override
5958
public boolean equals(Object other) {
60-
if (!(other instanceof DeleteFederationApplicationRequest)) {
59+
if (!(other instanceof DeleteFederationApplicationResponse)) {
6160
return false;
6261
}
6362
DeleteFederationApplicationResponsePBImpl otherImpl = this.getClass().cast(other);

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: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ public final class RouterMetrics {
155155
private MutableGaugeInt numBatchSaveFederationQueuePoliciesFailedRetrieved;
156156
@Metric("# of listFederationQueuePolicies failed to be retrieved")
157157
private MutableGaugeInt numListFederationQueuePoliciesFailedRetrieved;
158+
@Metric("# of deleteFederationApplication failed to be retrieved")
159+
private MutableGaugeInt numDeleteFederationApplicationFailedRetrieved;
158160
@Metric("# of refreshAdminAcls failed to be retrieved")
159161
private MutableGaugeInt numRefreshAdminAclsFailedRetrieved;
160162
@Metric("# of refreshServiceAcls failed to be retrieved")
@@ -307,6 +309,8 @@ public final class RouterMetrics {
307309
private MutableRate totalSucceededBatchSaveFederationQueuePoliciesRetrieved;
308310
@Metric("Total number of successful Retrieved ListFederationQueuePolicies and latency(ms)")
309311
private MutableRate totalSucceededListFederationQueuePoliciesFailedRetrieved;
312+
@Metric("Total number of successful Retrieved DeleteFederationApplication and latency(ms)")
313+
private MutableRate totalSucceededDeleteFederationApplicationFailedRetrieved;
310314
@Metric("Total number of successful Retrieved RefreshAdminAcls and latency(ms)")
311315
private MutableRate totalSucceededRefreshAdminAclsRetrieved;
312316
@Metric("Total number of successful Retrieved RefreshServiceAcls and latency(ms)")
@@ -396,6 +400,7 @@ public final class RouterMetrics {
396400
private MutableQuantiles saveFederationQueuePolicyLatency;
397401
private MutableQuantiles batchSaveFederationQueuePoliciesLatency;
398402
private MutableQuantiles listFederationQueuePoliciesLatency;
403+
private MutableQuantiles deleteFederationApplicationLatency;
399404
private MutableQuantiles refreshAdminAclsLatency;
400405
private MutableQuantiles refreshServiceAclsLatency;
401406
private MutableQuantiles replaceLabelsOnNodesLatency;
@@ -618,6 +623,10 @@ private RouterMetrics() {
618623
"listFederationQueuePoliciesLatency",
619624
"latency of list federationqueuepolicies timeouts", "ops", "latency", 10);
620625

626+
deleteFederationApplicationLatency = registry.newQuantiles(
627+
"deleteFederationApplicationLatency",
628+
"latency of delete FederationApplication timeouts", "ops", "latency", 10);
629+
621630
refreshAdminAclsLatency = registry.newQuantiles("refreshAdminAclsLatency",
622631
"latency of refresh admin acls timeouts", "ops", "latency", 10);
623632

@@ -962,6 +971,11 @@ public long getNumSucceededListFederationQueuePoliciesFailedRetrieved() {
962971
return totalSucceededListFederationQueuePoliciesFailedRetrieved.lastStat().numSamples();
963972
}
964973

974+
@VisibleForTesting
975+
public long getNumSucceededDeleteFederationApplicationFailedRetrieved() {
976+
return totalSucceededDeleteFederationApplicationFailedRetrieved.lastStat().numSamples();
977+
}
978+
965979
@VisibleForTesting
966980
public long getNumSucceededRefreshAdminAclsRetrieved() {
967981
return totalSucceededRefreshAdminAclsRetrieved.lastStat().numSamples();
@@ -1322,6 +1336,11 @@ public double getLatencySucceededListFederationQueuePoliciesRetrieved() {
13221336
return totalSucceededListFederationQueuePoliciesFailedRetrieved.lastStat().mean();
13231337
}
13241338

1339+
@VisibleForTesting
1340+
public double getLatencySucceededDeleteFederationApplicationFailedRetrieved() {
1341+
return totalSucceededDeleteFederationApplicationFailedRetrieved.lastStat().mean();
1342+
}
1343+
13251344
@VisibleForTesting
13261345
public double getLatencySucceededRefreshAdminAclsRetrieved() {
13271346
return totalSucceededRefreshAdminAclsRetrieved.lastStat().mean();
@@ -1629,6 +1648,10 @@ public int getListFederationQueuePoliciesFailedRetrieved() {
16291648
return numListFederationQueuePoliciesFailedRetrieved.value();
16301649
}
16311650

1651+
public int getDeleteFederationApplicationFailedRetrieved() {
1652+
return numDeleteFederationApplicationFailedRetrieved.value();
1653+
}
1654+
16321655
public int getNumRefreshAdminAclsFailedRetrieved() {
16331656
return numRefreshAdminAclsFailedRetrieved.value();
16341657
}
@@ -1996,6 +2019,11 @@ public void succeededListFederationQueuePoliciesRetrieved(long duration) {
19962019
listFederationQueuePoliciesLatency.add(duration);
19972020
}
19982021

2022+
public void succeededDeleteFederationApplicationFailedRetrieved(long duration) {
2023+
totalSucceededDeleteFederationApplicationFailedRetrieved.add(duration);
2024+
deleteFederationApplicationLatency.add(duration);
2025+
}
2026+
19992027
public void succeededRefreshAdminAclsRetrieved(long duration) {
20002028
totalSucceededRefreshAdminAclsRetrieved.add(duration);
20012029
refreshAdminAclsLatency.add(duration);
@@ -2286,6 +2314,10 @@ public void incrListFederationQueuePoliciesFailedRetrieved() {
22862314
numListFederationQueuePoliciesFailedRetrieved.incr();
22872315
}
22882316

2317+
public void incrDeleteFederationApplicationFailedRetrieved() {
2318+
numDeleteFederationApplicationFailedRetrieved.incr();
2319+
}
2320+
22892321
public void incrRefreshAdminAclsFailedRetrieved() {
22902322
numRefreshAdminAclsFailedRetrieved.incr();
22912323
}

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

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,24 +1094,36 @@ public QueryFederationQueuePoliciesResponse listFederationQueuePolicies(
10941094
@Override
10951095
public DeleteFederationApplicationResponse deleteFederationApplication(
10961096
DeleteFederationApplicationRequest request) throws YarnException, IOException {
1097+
10971098
// Parameter validation.
10981099
if (request == null) {
1100+
routerMetrics.incrDeleteFederationApplicationFailedRetrieved();
10991101
RouterServerUtil.logAndThrowException(
11001102
"Missing deleteFederationApplication Request.", null);
11011103
}
11021104

1105+
String application = request.getApplication();
1106+
if (StringUtils.isBlank(application)) {
1107+
routerMetrics.incrDeleteFederationApplicationFailedRetrieved();
1108+
RouterServerUtil.logAndThrowException(
1109+
"ApplicationId cannot be null.", null);
1110+
}
11031111

1112+
// Try calling deleteApplicationHomeSubCluster to delete the application.
11041113
try {
1105-
ApplicationId applicationId = ApplicationId.fromString(request.getApplication());
1114+
long startTime = clock.getTime();
1115+
ApplicationId applicationId = ApplicationId.fromString(application);
11061116
federationFacade.deleteApplicationHomeSubCluster(applicationId);
1117+
long stopTime = clock.getTime();
1118+
routerMetrics.succeededDeleteFederationApplicationFailedRetrieved(stopTime - startTime);
11071119
return DeleteFederationApplicationResponse.newInstance(
1108-
"application = " + applicationId + " delete success.");
1120+
"applicationId = " + applicationId + " delete success.");
11091121
} catch (Exception e) {
11101122
RouterServerUtil.logAndThrowException(e,
11111123
"Unable to deleteFederationApplication due to exception. " + e.getMessage());
11121124
}
11131125

1114-
throw new YarnException("Unable to listFederationQueuePolicies.");
1126+
throw new YarnException("Unable to deleteFederationApplication.");
11151127
}
11161128

11171129
/**

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/rmadmin/TestFederationRMAdminInterceptor.java

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
2323
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
2424
import org.apache.hadoop.test.LambdaTestUtils;
25+
import org.apache.hadoop.yarn.api.records.ApplicationId;
2526
import org.apache.hadoop.yarn.api.records.DecommissionType;
2627
import org.apache.hadoop.yarn.api.records.NodeId;
2728
import org.apache.hadoop.yarn.api.records.Resource;
@@ -31,13 +32,48 @@
3132
import org.apache.hadoop.yarn.api.records.NodeAttributeType;
3233
import org.apache.hadoop.yarn.conf.YarnConfiguration;
3334
import org.apache.hadoop.yarn.exceptions.YarnException;
34-
import org.apache.hadoop.yarn.server.api.protocolrecords.*;
35+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesRequest;
36+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshQueuesRequest;
37+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshQueuesResponse;
38+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshSuperUserGroupsConfigurationRequest;
39+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshSuperUserGroupsConfigurationResponse;
40+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshUserToGroupsMappingsRequest;
41+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshUserToGroupsMappingsResponse;
42+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshAdminAclsRequest;
43+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshAdminAclsResponse;
44+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshServiceAclsRequest;
45+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshServiceAclsResponse;
46+
import org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceRequest;
47+
import org.apache.hadoop.yarn.server.api.protocolrecords.UpdateNodeResourceResponse;
48+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResourcesRequest;
49+
import org.apache.hadoop.yarn.server.api.protocolrecords.RefreshNodesResourcesResponse;
50+
import org.apache.hadoop.yarn.server.api.protocolrecords.AddToClusterNodeLabelsRequest;
51+
import org.apache.hadoop.yarn.server.api.protocolrecords.AddToClusterNodeLabelsResponse;
52+
import org.apache.hadoop.yarn.server.api.protocolrecords.RemoveFromClusterNodeLabelsRequest;
53+
import org.apache.hadoop.yarn.server.api.protocolrecords.RemoveFromClusterNodeLabelsResponse;
54+
import org.apache.hadoop.yarn.server.api.protocolrecords.ReplaceLabelsOnNodeRequest;
55+
import org.apache.hadoop.yarn.server.api.protocolrecords.ReplaceLabelsOnNodeResponse;
56+
import org.apache.hadoop.yarn.server.api.protocolrecords.CheckForDecommissioningNodesRequest;
57+
import org.apache.hadoop.yarn.server.api.protocolrecords.CheckForDecommissioningNodesResponse;
58+
import org.apache.hadoop.yarn.server.api.protocolrecords.NodesToAttributesMappingRequest;
59+
import org.apache.hadoop.yarn.server.api.protocolrecords.AttributeMappingOperationType;
60+
import org.apache.hadoop.yarn.server.api.protocolrecords.NodeToAttributes;
61+
import org.apache.hadoop.yarn.server.api.protocolrecords.FederationQueueWeight;
62+
import org.apache.hadoop.yarn.server.api.protocolrecords.SaveFederationQueuePolicyRequest;
63+
import org.apache.hadoop.yarn.server.api.protocolrecords.SaveFederationQueuePolicyResponse;
64+
import org.apache.hadoop.yarn.server.api.protocolrecords.BatchSaveFederationQueuePoliciesRequest;
65+
import org.apache.hadoop.yarn.server.api.protocolrecords.BatchSaveFederationQueuePoliciesResponse;
66+
import org.apache.hadoop.yarn.server.api.protocolrecords.QueryFederationQueuePoliciesRequest;
67+
import org.apache.hadoop.yarn.server.api.protocolrecords.QueryFederationQueuePoliciesResponse;
68+
import org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationRequest;
69+
import org.apache.hadoop.yarn.server.api.protocolrecords.DeleteFederationApplicationResponse;
3570
import org.apache.hadoop.yarn.server.federation.policies.dao.WeightedPolicyInfo;
3671
import org.apache.hadoop.yarn.server.federation.policies.manager.WeightedLocalityPolicyManager;
3772
import org.apache.hadoop.yarn.server.federation.store.impl.MemoryFederationStateStore;
3873
import org.apache.hadoop.yarn.server.federation.store.records.SubClusterId;
3974
import org.apache.hadoop.yarn.server.federation.store.records.SubClusterIdInfo;
4075
import org.apache.hadoop.yarn.server.federation.store.records.SubClusterPolicyConfiguration;
76+
import org.apache.hadoop.yarn.server.federation.store.records.ApplicationHomeSubCluster;
4177
import org.apache.hadoop.yarn.server.federation.utils.FederationStateStoreFacade;
4278
import org.apache.hadoop.yarn.server.federation.utils.FederationStateStoreTestUtil;
4379
import org.junit.Assert;
@@ -960,10 +996,25 @@ public void testFilterPoliciesConfigurationsByQueues() throws Exception {
960996

961997

962998
@Test
963-
public void testDeleteFederationApplication() throws IOException, YarnException {
964-
DeleteFederationApplicationRequest request =
965-
DeleteFederationApplicationRequest.newInstance("application_1");
966-
DeleteFederationApplicationResponse response = interceptor.deleteFederationApplication(request);
967-
assertNotNull(response);
999+
public void testDeleteFederationApplication() throws Exception {
1000+
ApplicationId applicationId = ApplicationId.newInstance(10, 1);
1001+
DeleteFederationApplicationRequest request1 =
1002+
DeleteFederationApplicationRequest.newInstance(applicationId.toString());
1003+
LambdaTestUtils.intercept(YarnException.class,
1004+
"Application application_10_0001 does not exist.",
1005+
() -> interceptor.deleteFederationApplication(request1));
1006+
1007+
ApplicationId applicationId2 = ApplicationId.newInstance(10, 2);
1008+
SubClusterId homeSubCluster = SubClusterId.newInstance("SC-1");
1009+
ApplicationHomeSubCluster appHomeSubCluster =
1010+
ApplicationHomeSubCluster.newInstance(applicationId2, homeSubCluster);
1011+
facade.addApplicationHomeSubCluster(appHomeSubCluster);
1012+
DeleteFederationApplicationRequest request2 =
1013+
DeleteFederationApplicationRequest.newInstance(applicationId2.toString());
1014+
DeleteFederationApplicationResponse deleteFederationApplicationResponse =
1015+
interceptor.deleteFederationApplication(request2);
1016+
assertNotNull(deleteFederationApplicationResponse);
1017+
assertEquals("applicationId = " + applicationId2 + " delete success.",
1018+
deleteFederationApplicationResponse.getMessage());
9681019
}
9691020
}

0 commit comments

Comments
 (0)