HADOOP-8408. MR doesn't work with a non-default ViewFS mount table and security enabled. Contributed by Aaron T. Myers
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1339971 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
297cbcca27
commit
b1d3b518c2
|
@ -40,6 +40,9 @@ Release 2.0.1-alpha - UNRELEASED
|
|||
|
||||
HADOOP-8287. etc/hadoop is missing hadoop-env.sh (eli)
|
||||
|
||||
HADOOP-8408. MR doesn't work with a non-default ViewFS mount table
|
||||
and security enabled. (atm via eli)
|
||||
|
||||
Release 2.0.0-alpha - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -234,6 +234,11 @@ public class ViewFileSystem extends FileSystem {
|
|||
return res.isInternalDir() ? null : res.targetFileSystem.getHomeDirectory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCanonicalServiceName() {
|
||||
return getUri().getHost();
|
||||
}
|
||||
|
||||
@Override
|
||||
public URI getUri() {
|
||||
return myUri;
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.hadoop.fs.viewfs;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.fs.FileSystem;
|
||||
import org.apache.hadoop.fs.FsConstants;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Test ViewFileSystem's support for having delegation tokens fetched and cached
|
||||
* for the file system.
|
||||
*/
|
||||
public class TestViewFileSystemDelegationTokenSupport {
|
||||
|
||||
private static final String MOUNT_TABLE_NAME = "vfs-cluster";
|
||||
|
||||
/**
|
||||
* Ensure that a canonical service name can be determined for ViewFileSystem
|
||||
* instances configured with a non-default mount table name.
|
||||
*
|
||||
* Regression test for HADOOP-8408.
|
||||
*/
|
||||
@Test
|
||||
public void testGetCanonicalServiceNameWithNonDefaultMountTable()
|
||||
throws URISyntaxException, IOException {
|
||||
|
||||
Configuration conf = new Configuration();
|
||||
ConfigUtil.addLink(conf, MOUNT_TABLE_NAME, "/user", new URI("file:///"));
|
||||
|
||||
FileSystem viewFs = FileSystem.get(new URI(FsConstants.VIEWFS_SCHEME +
|
||||
"://" + MOUNT_TABLE_NAME), conf);
|
||||
|
||||
String serviceName = viewFs.getCanonicalServiceName();
|
||||
assertNotNull(serviceName);
|
||||
assertEquals(MOUNT_TABLE_NAME, serviceName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCanonicalServiceNameWithDefaultMountTable()
|
||||
throws URISyntaxException, IOException {
|
||||
|
||||
Configuration conf = new Configuration();
|
||||
ConfigUtil.addLink(conf, "/user", new URI("file:///"));
|
||||
|
||||
FileSystem viewFs = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||
|
||||
String serviceName = viewFs.getCanonicalServiceName();
|
||||
assertNull(serviceName);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue