|
38 | 38 | import org.apache.hadoop.test.LambdaTestUtils; |
39 | 39 | import org.apache.hadoop.util.Time; |
40 | 40 | 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.*; |
109 | 42 | import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; |
110 | 43 | import org.apache.hadoop.yarn.api.records.ApplicationId; |
111 | 44 | import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; |
@@ -1632,6 +1565,7 @@ public void testGetDelegationToken() throws IOException, YarnException { |
1632 | 1565 |
|
1633 | 1566 | @Test |
1634 | 1567 | public void testRenewDelegationToken() throws IOException, YarnException { |
| 1568 | + |
1635 | 1569 | // We design such a unit test to check |
1636 | 1570 | // that the execution of the GetDelegationToken method is as expected |
1637 | 1571 | // 1. Call GetDelegationToken to apply for delegationToken. |
@@ -1675,6 +1609,34 @@ public void testRenewDelegationToken() throws IOException, YarnException { |
1675 | 1609 | Assert.assertEquals(expDate, renewDate); |
1676 | 1610 | } |
1677 | 1611 |
|
| 1612 | + @Test |
| 1613 | + public void testCancelDelegationToken() throws IOException, YarnException { |
1678 | 1614 |
|
| 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. |
1679 | 1620 |
|
| 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 | + } |
1680 | 1642 | } |
0 commit comments