HADOOP-8036. TestViewFsTrash assumes the user's home directory is 2 levels deep. Contributed by Colin Patrick McCabe
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1245751 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1425c65b5e
commit
daf22e5f32
|
@ -201,6 +201,9 @@ Release 0.23.2 - UNRELEASED
|
||||||
|
|
||||||
HADOOP-8083 javadoc generation for some modules is not done under target/ (tucu)
|
HADOOP-8083 javadoc generation for some modules is not done under target/ (tucu)
|
||||||
|
|
||||||
|
HADOOP-8036. TestViewFsTrash assumes the user's home directory is
|
||||||
|
2 levels deep. (Colin Patrick McCabe via eli)
|
||||||
|
|
||||||
Release 0.23.1 - 2012-02-08
|
Release 0.23.1 - 2012-02-08
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -37,15 +37,15 @@ public class TestFSMainOperationsLocalFileSystem extends FSMainOperationsBaseTes
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
fcTarget = FileSystem.getLocal(conf);
|
fcTarget = FileSystem.getLocal(conf);
|
||||||
fSys = ViewFileSystemTestSetup.setupForViewFs(
|
fSys = ViewFileSystemTestSetup.setupForViewFileSystem(
|
||||||
ViewFileSystemTestSetup.configWithViewfsScheme(), fcTarget);
|
ViewFileSystemTestSetup.createConfig(), fcTarget);
|
||||||
super.setUp();
|
super.setUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
ViewFileSystemTestSetup.tearDownForViewFs(fcTarget);
|
ViewFileSystemTestSetup.tearDown(fcTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class TestViewFileSystemDelegation { //extends ViewFileSystemTestSetup {
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setup() throws Exception {
|
public static void setup() throws Exception {
|
||||||
conf = ViewFileSystemTestSetup.configWithViewfsScheme();
|
conf = ViewFileSystemTestSetup.createConfig();
|
||||||
fs1 = setupFileSystem(new URI("fs1:/"), FakeFileSystem.class);
|
fs1 = setupFileSystem(new URI("fs1:/"), FakeFileSystem.class);
|
||||||
fs2 = setupFileSystem(new URI("fs2:/"), FakeFileSystem.class);
|
fs2 = setupFileSystem(new URI("fs2:/"), FakeFileSystem.class);
|
||||||
viewFs = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
viewFs = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||||
|
|
|
@ -35,7 +35,6 @@ import org.mortbay.log.Log;
|
||||||
public class TestViewFsTrash {
|
public class TestViewFsTrash {
|
||||||
FileSystem fsTarget; // the target file system - the mount will point here
|
FileSystem fsTarget; // the target file system - the mount will point here
|
||||||
FileSystem fsView;
|
FileSystem fsView;
|
||||||
Path targetTestRoot;
|
|
||||||
Configuration conf;
|
Configuration conf;
|
||||||
|
|
||||||
static class TestLFS extends LocalFileSystem {
|
static class TestLFS extends LocalFileSystem {
|
||||||
|
@ -55,53 +54,20 @@ public class TestViewFsTrash {
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
fsTarget = FileSystem.getLocal(new Configuration());
|
fsTarget = FileSystem.getLocal(new Configuration());
|
||||||
targetTestRoot = FileSystemTestHelper.getAbsoluteTestRootPath(fsTarget);
|
fsTarget.mkdirs(new Path(FileSystemTestHelper.
|
||||||
// In case previous test was killed before cleanup
|
getTestRootPath(fsTarget), "dir1"));
|
||||||
fsTarget.delete(targetTestRoot, true);
|
conf = ViewFileSystemTestSetup.createConfig();
|
||||||
// cleanup trash from previous run if it stuck around
|
fsView = ViewFileSystemTestSetup.setupForViewFileSystem(conf, fsTarget);
|
||||||
fsTarget.delete(new Path(fsTarget.getHomeDirectory(), ".Trash/Current"),
|
|
||||||
true);
|
|
||||||
|
|
||||||
fsTarget.mkdirs(targetTestRoot);
|
|
||||||
fsTarget.mkdirs(new Path(targetTestRoot,"dir1"));
|
|
||||||
|
|
||||||
|
|
||||||
// Now we use the mount fs to set links to user and dir
|
|
||||||
// in the test root
|
|
||||||
|
|
||||||
// Set up the defaultMT in the config with our mount point links
|
|
||||||
|
|
||||||
|
|
||||||
conf = ViewFileSystemTestSetup.configWithViewfsScheme();
|
|
||||||
|
|
||||||
// create a link for home directory so that trash path works
|
|
||||||
// set up viewfs's home dir root to point to home dir root on target
|
|
||||||
// But home dir is different on linux, mac etc.
|
|
||||||
// Figure it out by calling home dir on target
|
|
||||||
|
|
||||||
String homeDirRoot = fsTarget.getHomeDirectory()
|
|
||||||
.getParent().toUri().getPath();
|
|
||||||
ConfigUtil.addLink(conf, homeDirRoot,
|
|
||||||
fsTarget.makeQualified(new Path(homeDirRoot)).toUri());
|
|
||||||
ConfigUtil.setHomeDirConf(conf, homeDirRoot);
|
|
||||||
Log.info("Home dir base " + homeDirRoot);
|
|
||||||
|
|
||||||
fsView = ViewFileSystemTestSetup.setupForViewFs(conf, fsTarget);
|
|
||||||
|
|
||||||
// set working dir so that relative paths
|
|
||||||
//fsView.setWorkingDirectory(new Path(fsTarget.getWorkingDirectory().toUri().getPath()));
|
|
||||||
conf.set("fs.defaultFS", FsConstants.VIEWFS_URI.toString());
|
conf.set("fs.defaultFS", FsConstants.VIEWFS_URI.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
fsTarget.delete(targetTestRoot, true);
|
ViewFileSystemTestSetup.tearDown(fsTarget);
|
||||||
fsTarget.delete(new Path(fsTarget.getHomeDirectory(), ".Trash/Current"),
|
fsTarget.delete(new Path(fsTarget.getHomeDirectory(), ".Trash/Current"),
|
||||||
true);
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTrash() throws IOException {
|
public void testTrash() throws IOException {
|
||||||
TestTrash.trashShell(conf, FileSystemTestHelper.getTestRootPath(fsView),
|
TestTrash.trashShell(conf, FileSystemTestHelper.getTestRootPath(fsView),
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class ViewFileSystemBaseTest {
|
||||||
|
|
||||||
// Set up the defaultMT in the config with our mount point links
|
// Set up the defaultMT in the config with our mount point links
|
||||||
//Configuration conf = new Configuration();
|
//Configuration conf = new Configuration();
|
||||||
conf = ViewFileSystemTestSetup.configWithViewfsScheme();
|
conf = ViewFileSystemTestSetup.createConfig();
|
||||||
setupMountPoints();
|
setupMountPoints();
|
||||||
fsView = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
fsView = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.apache.hadoop.fs.FileSystemTestHelper;
|
||||||
import org.apache.hadoop.fs.FsConstants;
|
import org.apache.hadoop.fs.FsConstants;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
import org.apache.hadoop.fs.viewfs.ConfigUtil;
|
import org.apache.hadoop.fs.viewfs.ConfigUtil;
|
||||||
|
import org.mortbay.log.Log;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,32 +47,21 @@ public class ViewFileSystemTestSetup {
|
||||||
* @return return the ViewFS File context to be used for tests
|
* @return return the ViewFS File context to be used for tests
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
static public FileSystem setupForViewFs(Configuration conf, FileSystem fsTarget) throws Exception {
|
static public FileSystem setupForViewFileSystem(Configuration conf, FileSystem fsTarget) throws Exception {
|
||||||
/**
|
/**
|
||||||
* create the test root on local_fs - the mount table will point here
|
* create the test root on local_fs - the mount table will point here
|
||||||
*/
|
*/
|
||||||
Path targetOfTests = FileSystemTestHelper.getTestRootPath(fsTarget);
|
fsTarget.mkdirs(FileSystemTestHelper.getTestRootPath(fsTarget));
|
||||||
// In case previous test was killed before cleanup
|
|
||||||
fsTarget.delete(targetOfTests, true);
|
|
||||||
|
|
||||||
fsTarget.mkdirs(targetOfTests);
|
// viewFs://home => fsTarget://home
|
||||||
|
String homeDirRoot = fsTarget.getHomeDirectory()
|
||||||
|
.getParent().toUri().getPath();
|
||||||
// Now set up a link from viewfs to targetfs for the first component of
|
ConfigUtil.addLink(conf, homeDirRoot,
|
||||||
// path of testdir. For example, if testdir is /user/<userid>/xx then
|
fsTarget.makeQualified(new Path(homeDirRoot)).toUri());
|
||||||
// a link from /user to targetfs://user.
|
ConfigUtil.setHomeDirConf(conf, homeDirRoot);
|
||||||
|
Log.info("Home dir base " + homeDirRoot);
|
||||||
String testDir = FileSystemTestHelper.getTestRootPath(fsTarget).toUri().getPath();
|
|
||||||
int indexOf2ndSlash = testDir.indexOf('/', 1);
|
|
||||||
String testDirFirstComponent = testDir.substring(0, indexOf2ndSlash);
|
|
||||||
|
|
||||||
|
|
||||||
ConfigUtil.addLink(conf, testDirFirstComponent,
|
|
||||||
fsTarget.makeQualified(new Path(testDirFirstComponent)).toUri());
|
|
||||||
|
|
||||||
FileSystem fsView = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
FileSystem fsView = FileSystem.get(FsConstants.VIEWFS_URI, conf);
|
||||||
//System.out.println("SRCOfTests = "+ getTestRootPath(fs, "test"));
|
|
||||||
//System.out.println("TargetOfTests = "+ targetOfTests.toUri());
|
|
||||||
return fsView;
|
return fsView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,12 +69,12 @@ public class ViewFileSystemTestSetup {
|
||||||
*
|
*
|
||||||
* delete the test directory in the target fs
|
* delete the test directory in the target fs
|
||||||
*/
|
*/
|
||||||
static public void tearDownForViewFs(FileSystem fsTarget) throws Exception {
|
static public void tearDown(FileSystem fsTarget) throws Exception {
|
||||||
Path targetOfTests = FileSystemTestHelper.getTestRootPath(fsTarget);
|
Path targetOfTests = FileSystemTestHelper.getTestRootPath(fsTarget);
|
||||||
fsTarget.delete(targetOfTests, true);
|
fsTarget.delete(targetOfTests, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Configuration configWithViewfsScheme() {
|
public static Configuration createConfig() {
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
conf.set("fs.viewfs.impl", ViewFileSystem.class.getName());
|
conf.set("fs.viewfs.impl", ViewFileSystem.class.getName());
|
||||||
return conf;
|
return conf;
|
||||||
|
|
Loading…
Reference in New Issue