From 587f499b886d7c2b2afde82c582340e2f77d995b Mon Sep 17 00:00:00 2001 From: Robert Joseph Evans Date: Thu, 27 Sep 2012 17:32:53 +0000 Subject: [PATCH] svn merge -c 1391121 FIXES: HDFS-3831. Failure to renew tokens due to test-sources left in classpath (jlowe via bobby) git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1391122 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 ++ .../org/apache/hadoop/tools/FakeRenewer.java | 40 +++++++++++++++++++ .../tools/TestDelegationTokenFetcher.java | 38 +----------------- ....apache.hadoop.security.token.TokenRenewer | 2 +- 4 files changed, 45 insertions(+), 38 deletions(-) create mode 100644 hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/FakeRenewer.java diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 2152652f8de..ab18bd46bed 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1503,6 +1503,9 @@ Release 0.23.4 - UNRELEASED BUG FIXES + HDFS-3831. Failure to renew tokens due to test-sources left in classpath + (jlowe via bobby) + Release 0.23.3 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/FakeRenewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/FakeRenewer.java new file mode 100644 index 00000000000..d6f9171b1d6 --- /dev/null +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/FakeRenewer.java @@ -0,0 +1,40 @@ +package org.apache.hadoop.tools; + +import java.io.IOException; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.security.token.Token; +import org.apache.hadoop.security.token.TokenRenewer; + +public class FakeRenewer extends TokenRenewer { + static Token lastRenewed = null; + static Token lastCanceled = null; + static final Text KIND = new Text("TESTING-TOKEN-KIND"); + + @Override + public boolean handleKind(Text kind) { + return FakeRenewer.KIND.equals(kind); + } + + @Override + public boolean isManaged(Token token) throws IOException { + return true; + } + + @Override + public long renew(Token token, Configuration conf) { + lastRenewed = token; + return 0; + } + + @Override + public void cancel(Token token, Configuration conf) { + lastCanceled = token; + } + + public static void reset() { + lastRenewed = null; + lastCanceled = null; + } +} \ No newline at end of file diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestDelegationTokenFetcher.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestDelegationTokenFetcher.java index 48b86427aca..63043494eec 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestDelegationTokenFetcher.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestDelegationTokenFetcher.java @@ -36,9 +36,7 @@ import org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenIdentifie import org.apache.hadoop.hdfs.tools.DelegationTokenFetcher; import org.apache.hadoop.io.Text; import org.apache.hadoop.security.Credentials; -import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.token.Token; -import org.apache.hadoop.security.token.TokenRenewer; import org.junit.Before; import org.junit.Test; import org.mockito.invocation.InvocationOnMock; @@ -50,7 +48,6 @@ public class TestDelegationTokenFetcher { private Configuration conf; private URI uri; private static final String SERVICE_VALUE = "localhost:2005"; - private static final Text KIND = new Text("TESTING-TOKEN-KIND"); private static String tokenFile = "file.dta"; @Before @@ -61,37 +58,6 @@ public class TestDelegationTokenFetcher { FileSystemTestHelper.addFileSystemForTesting(uri, conf, dfs); } - public static class FakeRenewer extends TokenRenewer { - static Token lastRenewed = null; - static Token lastCanceled = null; - - @Override - public boolean handleKind(Text kind) { - return KIND.equals(kind); - } - - @Override - public boolean isManaged(Token token) throws IOException { - return true; - } - - @Override - public long renew(Token token, Configuration conf) { - lastRenewed = token; - return 0; - } - - @Override - public void cancel(Token token, Configuration conf) { - lastCanceled = token; - } - - public static void reset() { - lastRenewed = null; - lastCanceled = null; - } - } - /** * Verify that when the DelegationTokenFetcher runs, it talks to the Namenode, * pulls out the correct user's token and successfully serializes it to disk. @@ -103,13 +69,11 @@ public class TestDelegationTokenFetcher { new Text("renewer"), new Text("realuser")).getBytes(); final byte[] pw = new byte[] { 42 }; final Text service = new Text(uri.toString()); - final String user = - UserGroupInformation.getCurrentUser().getShortUserName(); // Create a token for the fetcher to fetch, wire NN to return it when asked // for this particular user. final Token t = - new Token(ident, pw, KIND, service); + new Token(ident, pw, FakeRenewer.KIND, service); when(dfs.addDelegationTokens(eq((String) null), any(Credentials.class))).thenAnswer( new Answer[]>() { @Override diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer index 568cc80764c..721b9961607 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/META-INF/services/org.apache.hadoop.security.token.TokenRenewer @@ -1 +1 @@ -org.apache.hadoop.tools.TestDelegationTokenFetcher$FakeRenewer +org.apache.hadoop.tools.FakeRenewer