Skip to content

Commit 3877ee8

Browse files
author
slfan1989
committed
YARN-11350. [Federation] Router Support DelegationToken With ZK.
1 parent 966b0a7 commit 3877ee8

File tree

1 file changed

+30
-68
lines changed

1 file changed

+30
-68
lines changed

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestFederationClientInterceptor.java

Lines changed: 30 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -38,74 +38,7 @@
3838
import org.apache.hadoop.test.LambdaTestUtils;
3939
import org.apache.hadoop.util.Time;
4040
import org.apache.hadoop.yarn.MockApps;
41-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptReportRequest;
42-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptReportResponse;
43-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest;
44-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportResponse;
45-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
46-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsResponse;
47-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
48-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
49-
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationRequest;
50-
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse;
51-
import org.apache.hadoop.yarn.api.protocolrecords.KillApplicationRequest;
52-
import org.apache.hadoop.yarn.api.protocolrecords.KillApplicationResponse;
53-
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
54-
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
55-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
56-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
57-
import org.apache.hadoop.yarn.api.protocolrecords.GetNodesToLabelsResponse;
58-
import org.apache.hadoop.yarn.api.protocolrecords.GetNodesToLabelsRequest;
59-
import org.apache.hadoop.yarn.api.protocolrecords.GetLabelsToNodesResponse;
60-
import org.apache.hadoop.yarn.api.protocolrecords.GetLabelsToNodesRequest;
61-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeLabelsResponse;
62-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeLabelsRequest;
63-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptsRequest;
64-
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptsResponse;
65-
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoResponse;
66-
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoRequest;
67-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationListResponse;
68-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationListRequest;
69-
import org.apache.hadoop.yarn.api.protocolrecords.GetContainersRequest;
70-
import org.apache.hadoop.yarn.api.protocolrecords.GetContainersResponse;
71-
import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportRequest;
72-
import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportResponse;
73-
import org.apache.hadoop.yarn.api.protocolrecords.GetAllResourceTypeInfoResponse;
74-
import org.apache.hadoop.yarn.api.protocolrecords.GetAllResourceTypeInfoRequest;
75-
import org.apache.hadoop.yarn.api.protocolrecords.FailApplicationAttemptRequest;
76-
import org.apache.hadoop.yarn.api.protocolrecords.FailApplicationAttemptResponse;
77-
import org.apache.hadoop.yarn.api.protocolrecords.UpdateApplicationPriorityRequest;
78-
import org.apache.hadoop.yarn.api.protocolrecords.UpdateApplicationPriorityResponse;
79-
import org.apache.hadoop.yarn.api.protocolrecords.UpdateApplicationTimeoutsRequest;
80-
import org.apache.hadoop.yarn.api.protocolrecords.UpdateApplicationTimeoutsResponse;
81-
import org.apache.hadoop.yarn.api.protocolrecords.SignalContainerRequest;
82-
import org.apache.hadoop.yarn.api.protocolrecords.SignalContainerResponse;
83-
import org.apache.hadoop.yarn.api.protocolrecords.MoveApplicationAcrossQueuesRequest;
84-
import org.apache.hadoop.yarn.api.protocolrecords.MoveApplicationAcrossQueuesResponse;
85-
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoRequest;
86-
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoResponse;
87-
import org.apache.hadoop.yarn.api.protocolrecords.GetAllResourceProfilesRequest;
88-
import org.apache.hadoop.yarn.api.protocolrecords.GetAllResourceProfilesResponse;
89-
import org.apache.hadoop.yarn.api.protocolrecords.GetResourceProfileRequest;
90-
import org.apache.hadoop.yarn.api.protocolrecords.GetResourceProfileResponse;
91-
import org.apache.hadoop.yarn.api.protocolrecords.GetAttributesToNodesRequest;
92-
import org.apache.hadoop.yarn.api.protocolrecords.GetAttributesToNodesResponse;
93-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeAttributesRequest;
94-
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeAttributesResponse;
95-
import org.apache.hadoop.yarn.api.protocolrecords.GetNodesToAttributesRequest;
96-
import org.apache.hadoop.yarn.api.protocolrecords.GetNodesToAttributesResponse;
97-
import org.apache.hadoop.yarn.api.protocolrecords.GetNewReservationRequest;
98-
import org.apache.hadoop.yarn.api.protocolrecords.GetNewReservationResponse;
99-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionRequest;
100-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionResponse;
101-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateRequest;
102-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateResponse;
103-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationDeleteRequest;
104-
import org.apache.hadoop.yarn.api.protocolrecords.ReservationDeleteResponse;
105-
import org.apache.hadoop.yarn.api.protocolrecords.GetDelegationTokenRequest;
106-
import org.apache.hadoop.yarn.api.protocolrecords.GetDelegationTokenResponse;
107-
import org.apache.hadoop.yarn.api.protocolrecords.RenewDelegationTokenRequest;
108-
import org.apache.hadoop.yarn.api.protocolrecords.RenewDelegationTokenResponse;
41+
import org.apache.hadoop.yarn.api.protocolrecords.*;
10942
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
11043
import org.apache.hadoop.yarn.api.records.ApplicationId;
11144
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
@@ -1632,6 +1565,7 @@ public void testGetDelegationToken() throws IOException, YarnException {
16321565

16331566
@Test
16341567
public void testRenewDelegationToken() throws IOException, YarnException {
1568+
16351569
// We design such a unit test to check
16361570
// that the execution of the GetDelegationToken method is as expected
16371571
// 1. Call GetDelegationToken to apply for delegationToken.
@@ -1675,6 +1609,34 @@ public void testRenewDelegationToken() throws IOException, YarnException {
16751609
Assert.assertEquals(expDate, renewDate);
16761610
}
16771611

1612+
@Test
1613+
public void testCancelDelegationToken() throws IOException, YarnException {
16781614

1615+
// We design such a unit test to check
1616+
// that the execution of the CancelDelegationToken method is as expected
1617+
// 1. Call GetDelegationToken to apply for delegationToken.
1618+
// 2. Call CancelDelegationToken to cancel delegationToken.
1619+
// 3. Query the data in the StateStore and confirm that the Delegation has been deleted.
16791620

1621+
// Step1. Call GetDelegationToken to apply for delegationToken.
1622+
GetDelegationTokenRequest request = mock(GetDelegationTokenRequest.class);
1623+
when(request.getRenewer()).thenReturn("renewer3");
1624+
GetDelegationTokenResponse response = interceptor.getDelegationToken(request);
1625+
Assert.assertNotNull(response);
1626+
Token delegationToken = response.getRMDelegationToken();
1627+
1628+
// Step2. Call CancelDelegationToken to cancel delegationToken.
1629+
CancelDelegationTokenRequest cancelTokenRequest =
1630+
CancelDelegationTokenRequest.newInstance(delegationToken);
1631+
CancelDelegationTokenResponse cancelTokenResponse =
1632+
interceptor.cancelDelegationToken(cancelTokenRequest);
1633+
Assert.assertNotNull(cancelTokenResponse);
1634+
1635+
// Step3. Query the data in the StateStore and confirm that the Delegation has been deleted.
1636+
// At this point, the size of delegationTokenState should be 0.
1637+
RouterRMDTSecretManagerState managerState = stateStore.getRouterRMSecretManagerState();
1638+
Map<RMDelegationTokenIdentifier, Long> delegationTokenState = managerState.getTokenState();
1639+
Assert.assertNotNull(delegationTokenState);
1640+
Assert.assertEquals(0, delegationTokenState.size());
1641+
}
16801642
}

0 commit comments

Comments
 (0)