@@ -956,9 +956,9 @@ public UpdateReservationHomeSubClusterResponse updateReservationHomeSubCluster(
956956 public synchronized RouterMasterKeyResponse storeNewMasterKey (RouterMasterKeyRequest request )
957957 throws YarnException , IOException {
958958 RouterMasterKey masterKey = request .getRouterMasterKey ();
959- DelegationKey delegationKey = getDelegationKeyByMasterKey (masterKey );
959+ DelegationKey delegationKey = convertMasterKeyToDelegationKey (masterKey );
960960 String nodeCreatePath = getNodePath (dtMasterKeysRootPath ,
961- DELEGATION_KEY_PREFIX + delegationKey .getKeyId ());
961+ DELEGATION_KEY_PREFIX + delegationKey .getKeyId ());
962962 LOG .debug ("Storing RMDelegationKey_{}" , delegationKey .getKeyId ());
963963 ByteArrayOutputStream os = new ByteArrayOutputStream ();
964964 try (DataOutputStream fsOut = new DataOutputStream (os )) {
@@ -972,7 +972,7 @@ public synchronized RouterMasterKeyResponse storeNewMasterKey(RouterMasterKeyReq
972972 public RouterMasterKeyResponse removeStoredMasterKey (RouterMasterKeyRequest request )
973973 throws YarnException , IOException {
974974 RouterMasterKey masterKey = request .getRouterMasterKey ();
975- DelegationKey delegationKey = getDelegationKeyByMasterKey (masterKey );
975+ DelegationKey delegationKey = convertMasterKeyToDelegationKey (masterKey );
976976 String nodeRemovePath = getNodePath (dtMasterKeysRootPath , DELEGATION_KEY_PREFIX
977977 + delegationKey .getKeyId ());
978978 LOG .debug ("Removing RMDelegationKey_{}" , delegationKey .getKeyId ());
@@ -1013,7 +1013,6 @@ public RouterRMTokenResponse storeNewToken(RouterRMTokenRequest request)
10131013 public RouterRMTokenResponse updateStoredToken (RouterRMTokenRequest request )
10141014 throws YarnException , IOException {
10151015 try {
1016-
10171016 RouterStoreToken routerStoreToken = request .getRouterStoreToken ();
10181017 YARNDelegationTokenIdentifier tokenIdentifier = routerStoreToken .getTokenIdentifier ();
10191018
@@ -1047,18 +1046,63 @@ public RouterRMTokenResponse updateStoredToken(RouterRMTokenRequest request)
10471046 @ Override
10481047 public RouterRMTokenResponse removeStoredToken (RouterRMTokenRequest request )
10491048 throws YarnException , IOException {
1050- throw new NotImplementedException ("Code is not implemented" );
1049+ try {
1050+ RouterStoreToken routerStoreToken = request .getRouterStoreToken ();
1051+ YARNDelegationTokenIdentifier tokenIdentifier = routerStoreToken .getTokenIdentifier ();
1052+
1053+ // get the Token storage path
1054+ String nodePath = getNodePath (RM_DELEGATION_TOKENS_ROOT_ZNODE_NAME ,
1055+ DELEGATION_TOKEN_PREFIX + tokenIdentifier .getSequenceNumber ());
1056+
1057+ RouterStoreToken storeToken = getStoreTokenFromZK (tokenIdentifier , true );
1058+
1059+ if (storeToken != null ) {
1060+ zkManager .delete (nodePath );
1061+ }
1062+
1063+ return RouterRMTokenResponse .newInstance (storeToken );
1064+
1065+ } catch (YarnException e ) {
1066+ throw new YarnException (e );
1067+ } catch (IOException e ) {
1068+ throw new IOException (e );
1069+ } catch (Exception e ) {
1070+ throw new YarnException (e );
1071+ }
10511072 }
10521073
10531074 @ Override
10541075 public RouterRMTokenResponse getTokenByRouterStoreToken (RouterRMTokenRequest request )
10551076 throws YarnException , IOException {
10561077 request .getRouterStoreToken ().getTokenIdentifier ();
1057- throw new NotImplementedException ("Code is not implemented" );
1078+ try {
1079+ RouterStoreToken routerStoreToken = request .getRouterStoreToken ();
1080+ YARNDelegationTokenIdentifier tokenIdentifier = routerStoreToken .getTokenIdentifier ();
1081+
1082+ // get the Token storage path
1083+ String nodeName = DELEGATION_TOKEN_PREFIX + tokenIdentifier .getSequenceNumber ();
1084+ String nodePath = getNodePath (RM_DELEGATION_TOKENS_ROOT_ZNODE_NAME ,
1085+ DELEGATION_TOKEN_PREFIX + tokenIdentifier .getSequenceNumber ());
1086+
1087+ if (!exists (nodePath )) {
1088+ throw new IOException (nodeName + " not exists!" );
1089+ }
10581090
1091+ RouterStoreToken resultStoreToken = getStoreTokenFromZK (tokenIdentifier , false );
1092+ return RouterRMTokenResponse .newInstance (resultStoreToken );
1093+
1094+ } catch (Exception e ) {
1095+ throw new YarnException (e );
1096+ }
10591097 }
10601098
1061- private static DelegationKey getDelegationKeyByMasterKey (RouterMasterKey masterKey ) {
1099+ /**
1100+ * Convert MasterKey to DelegationKey.
1101+ *
1102+ * @param masterKey masterKey.
1103+ * @return DelegationKey.
1104+ */
1105+ private DelegationKey convertMasterKeyToDelegationKey (RouterMasterKey masterKey ) {
10621106 ByteBuffer keyByteBuf = masterKey .getKeyBytes ();
10631107 byte [] keyBytes = new byte [keyByteBuf .remaining ()];
10641108 keyByteBuf .get (keyBytes );
0 commit comments