HDFS-15585: ViewDFS#getDelegationToken should not throw UnsupportedOperationException. (#2312). Contributed by Uma Maheswara Rao G.
This commit is contained in:
parent
eacbe07b56
commit
7bba4c609c
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue