HDFS-14070. Refactor NameNodeWebHdfsMethods to allow better extensibility. Contributed by CR Hota
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e7b63bac Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e7b63bac Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e7b63bac Branch: refs/heads/HDFS-13891 Commit: e7b63baca1e10b28d8b4462fd80537b871951aa3 Parents: a67642c Author: Brahma Reddy Battula <bra...@apache.org> Authored: Tue Nov 13 12:45:13 2018 +0530 Committer: Brahma Reddy Battula <bra...@apache.org> Committed: Tue Nov 13 12:45:44 2018 +0530 ---------------------------------------------------------------------- .../web/resources/NamenodeWebHdfsMethods.java | 26 ++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e7b63bac/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/web/resources/NamenodeWebHdfsMethods.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/web/resources/NamenodeWebHdfsMethods.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/web/resources/NamenodeWebHdfsMethods.java index d73fd45..c4d3239 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/web/resources/NamenodeWebHdfsMethods.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/web/resources/NamenodeWebHdfsMethods.java @@ -337,9 +337,22 @@ public class NamenodeWebHdfsMethods { throw new IOException("No active nodes contain this block"); } - private Token<? extends TokenIdentifier> generateDelegationToken( - final NameNode namenode, final UserGroupInformation ugi, + public long renewDelegationToken(Token<DelegationTokenIdentifier> token) + throws IOException { + ClientProtocol cp = getRpcClientProtocol(); + return cp.renewDelegationToken(token); + } + + public void cancelDelegationToken(Token<DelegationTokenIdentifier> token) + throws IOException { + ClientProtocol cp = getRpcClientProtocol(); + cp.cancelDelegationToken(token); + } + + public Token<? extends TokenIdentifier> generateDelegationToken( + final UserGroupInformation ugi, final String renewer) throws IOException { + final NameNode namenode = (NameNode)context.getAttribute("name.node"); final Credentials c = DelegationTokenSecretManager.createCredentials( namenode, ugi, renewer != null? renewer: ugi.getShortUserName()); if (c == null) { @@ -384,7 +397,7 @@ public class NamenodeWebHdfsMethods { } else { //generate a token final Token<? extends TokenIdentifier> t = generateDelegationToken( - namenode, ugi, null); + ugi, null); delegationQuery = "&" + new DelegationParam(t.encodeToUrlString()); } @@ -705,7 +718,7 @@ public class NamenodeWebHdfsMethods { validateOpParams(op, delegationTokenArgument); final Token<DelegationTokenIdentifier> token = new Token<DelegationTokenIdentifier>(); token.decodeFromUrlString(delegationTokenArgument.getValue()); - final long expiryTime = cp.renewDelegationToken(token); + final long expiryTime = renewDelegationToken(token); final String js = JsonUtil.toJsonString("long", expiryTime); return Response.ok(js).type(MediaType.APPLICATION_JSON).build(); } @@ -714,7 +727,7 @@ public class NamenodeWebHdfsMethods { validateOpParams(op, delegationTokenArgument); final Token<DelegationTokenIdentifier> token = new Token<DelegationTokenIdentifier>(); token.decodeFromUrlString(delegationTokenArgument.getValue()); - cp.cancelDelegationToken(token); + cancelDelegationToken(token); return Response.ok().type(MediaType.APPLICATION_OCTET_STREAM).build(); } case MODIFYACLENTRIES: { @@ -1138,9 +1151,8 @@ public class NamenodeWebHdfsMethods { throw new IllegalArgumentException(delegation.getName() + " parameter is not null."); } - final NameNode namenode = (NameNode)context.getAttribute("name.node"); final Token<? extends TokenIdentifier> token = generateDelegationToken( - namenode, ugi, renewer.getValue()); + ugi, renewer.getValue()); final String setServiceName = tokenService.getValue(); final String setKind = tokenKind.getValue(); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org