You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ay...@apache.org on 2020/09/18 10:09:14 UTC
[hadoop] 02/02: HDFS-15585: ViewDFS#getDelegationToken should not
throw UnsupportedOperationException. (#2312). Contributed by Uma Maheswara
Rao G.
This is an automated email from the ASF dual-hosted git repository.
ayushsaxena pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git
commit 2ce5846bfa58b6bb3b4c15313c1a6cc9baaaed8f
Author: Uma Maheswara Rao G <um...@apache.org>
AuthorDate: Fri Sep 18 02:48:10 2020 -0700
HDFS-15585: ViewDFS#getDelegationToken should not throw UnsupportedOperationException. (#2312). Contributed by Uma Maheswara Rao G.
---
.../hadoop/hdfs/ViewDistributedFileSystem.java | 15 ++++++++++++---
.../hadoop/hdfs/TestViewDistributedFileSystem.java | 22 ++++++++++++++++++++++
2 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java
index 1afb5d9..4fee963 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/ViewDistributedFileSystem.java
@@ -1032,15 +1032,24 @@ public class ViewDistributedFileSystem extends DistributedFileSystem {
return super.getDefaultPort();
}
+ /**
+ * If no mount points configured, it works same as
+ * {@link DistributedFileSystem#getDelegationToken(String)}. If
+ * there are mount points configured and if default fs(linkFallback)
+ * configured, then it will return default fs delegation token. Otherwise
+ * it will return null.
+ */
@Override
public Token<DelegationTokenIdentifier> getDelegationToken(String renewer)
throws IOException {
if (this.vfs == null) {
return super.getDelegationToken(renewer);
}
- //Let applications call getDelegationTokenIssuers and get respective
- // delegation tokens from child fs.
- throw new UnsupportedOperationException();
+
+ if (defaultDFS != null) {
+ return defaultDFS.getDelegationToken(renewer);
+ }
+ return null;
}
@Override
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
index 0ba0841..da0cb59 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestViewDistributedFileSystem.java
@@ -18,14 +18,17 @@
package org.apache.hadoop.hdfs;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathHandle;
+import org.apache.hadoop.fs.viewfs.ConfigUtil;
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
import org.apache.hadoop.test.Whitebox;
import org.junit.Test;
import java.io.IOException;
+import java.net.URI;
public class TestViewDistributedFileSystem extends TestDistributedFileSystem{
@Override
@@ -67,4 +70,23 @@ public class TestViewDistributedFileSystem extends TestDistributedFileSystem{
}
}
}
+
+ @Override
+ public void testEmptyDelegationToken() throws IOException {
+ Configuration conf = getTestConfiguration();
+ MiniDFSCluster cluster = null;
+ try {
+ cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build();
+ URI defaultUri =
+ URI.create(conf.get(CommonConfigurationKeys.FS_DEFAULT_NAME_KEY));
+ ConfigUtil.addLinkFallback(conf, defaultUri.getHost(), defaultUri);
+ try (FileSystem fileSys = FileSystem.get(conf)) {
+ fileSys.getDelegationToken("");
+ }
+ } finally {
+ if (cluster != null) {
+ cluster.shutdown();
+ }
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org