use of alluxio.AlluxioURI in project alluxio by Alluxio.
the class CopyFromLocalCommandTest method copyFromLocalDirToExistingDir.
@Test
public void copyFromLocalDirToExistingDir() throws IOException, AlluxioException {
// Copy a directory from local to Alluxio filesystem, which the destination uri has been
// created before.
File srcOuterDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/outerDir");
File srcInnerDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/outerDir/innerDir");
File emptyDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/outerDir/emptyDir");
srcOuterDir.mkdir();
srcInnerDir.mkdir();
emptyDir.mkdir();
generateFileContent("/outerDir/srcFile1", BufferUtils.getIncreasingByteArray(10));
generateFileContent("/outerDir/innerDir/srcFile2", BufferUtils.getIncreasingByteArray(10));
// Copying a directory to a destination directory which exists and doesn't contain the copied
// directory.
mFileSystem.createDirectory(new AlluxioURI("/dstDir"));
int ret = mFsShell.run("copyFromLocal", srcOuterDir.getPath(), "/dstDir");
Assert.assertEquals(0, ret);
AlluxioURI dstURI1 = new AlluxioURI("/dstDir/srcFile1");
AlluxioURI dstURI2 = new AlluxioURI("/dstDir/innerDir/srcFile2");
AlluxioURI dstURI3 = new AlluxioURI("/dstDir/emptyDir");
Assert.assertNotNull(mFileSystem.getStatus(dstURI1));
Assert.assertNotNull(mFileSystem.getStatus(dstURI2));
Assert.assertNotNull(mFileSystem.getStatus(dstURI3));
// Copying a directory to a destination directory which exists and does contain the copied
// directory.
mFileSystem.createDirectory(new AlluxioURI("/dstDir1"));
mFileSystem.createDirectory(new AlluxioURI("/dstDir1/innerDir"));
int ret1 = mFsShell.run("copyFromLocal", srcOuterDir.getPath(), "/dstDir1");
Assert.assertEquals(-1, ret1);
dstURI1 = new AlluxioURI("/dstDir1/srcFile1");
dstURI2 = new AlluxioURI("/dstDir1/innerDir/srcFile2");
dstURI3 = new AlluxioURI("/dstDir1/emptyDir");
Assert.assertNotNull(mFileSystem.getStatus(dstURI1));
// The directory already exists. But the sub directory shouldn't be copied.
Assert.assertFalse(mFileSystem.exists(dstURI2));
Assert.assertNotNull(mFileSystem.getStatus(dstURI3));
}
use of alluxio.AlluxioURI in project alluxio by Alluxio.
the class CopyFromLocalCommandTest method copyFromLocalOverwrite.
@Test
public void copyFromLocalOverwrite() throws Exception {
// This tests makes sure copyFromLocal will not overwrite an existing Alluxio file
final int LEN1 = 10;
final int LEN2 = 20;
File testFile1 = generateFileContent("/testFile1", BufferUtils.getIncreasingByteArray(LEN1));
File testFile2 = generateFileContent("/testFile2", BufferUtils.getIncreasingByteArray(LEN2));
AlluxioURI alluxioFilePath = new AlluxioURI("/testFile");
// Write the first file
String[] cmd1 = { "copyFromLocal", testFile1.getPath(), alluxioFilePath.getPath() };
mFsShell.run(cmd1);
Assert.assertEquals(getCommandOutput(cmd1), mOutput.toString());
mOutput.reset();
Assert.assertTrue(BufferUtils.equalIncreasingByteArray(LEN1, readContent(alluxioFilePath, LEN1)));
// Write the second file to the same location, which should cause an exception
String[] cmd2 = { "copyFromLocal", testFile2.getPath(), alluxioFilePath.getPath() };
Assert.assertEquals(-1, mFsShell.run(cmd2));
Assert.assertEquals(alluxioFilePath.getPath() + " already exists\n", mOutput.toString());
// Make sure the original file is intact
Assert.assertTrue(BufferUtils.equalIncreasingByteArray(LEN1, readContent(alluxioFilePath, LEN1)));
}
use of alluxio.AlluxioURI in project alluxio by Alluxio.
the class CopyFromLocalCommandTest method copyFromLocal.
@Test
public void copyFromLocal() throws IOException, AlluxioException {
File testDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/testDir");
testDir.mkdir();
File testDirInner = new File(mLocalAlluxioCluster.getAlluxioHome() + "/testDir/testDirInner");
testDirInner.mkdir();
File testFile = generateFileContent("/testDir/testFile", BufferUtils.getIncreasingByteArray(10));
generateFileContent("/testDir/testDirInner/testFile2", BufferUtils.getIncreasingByteArray(10, 20));
mFsShell.run("copyFromLocal", testFile.getParent(), "/testDir");
Assert.assertEquals(getCommandOutput(new String[] { "copyFromLocal", testFile.getParent(), "/testDir" }), mOutput.toString());
AlluxioURI uri1 = new AlluxioURI("/testDir/testFile");
AlluxioURI uri2 = new AlluxioURI("/testDir/testDirInner/testFile2");
URIStatus status1 = mFileSystem.getStatus(uri1);
URIStatus status2 = mFileSystem.getStatus(uri2);
Assert.assertNotNull(status1);
Assert.assertNotNull(status2);
Assert.assertEquals(10, status1.getLength());
Assert.assertEquals(20, status2.getLength());
byte[] read = readContent(uri1, 10);
Assert.assertTrue(BufferUtils.equalIncreasingByteArray(10, read));
read = readContent(uri2, 20);
Assert.assertTrue(BufferUtils.equalIncreasingByteArray(10, 20, read));
}
use of alluxio.AlluxioURI in project alluxio by Alluxio.
the class CopyFromLocalCommandTest method copyFromLocalDirToExistingFile.
@Test
public void copyFromLocalDirToExistingFile() throws IOException, AlluxioException {
// Copy a directory from local to a file which exists in Alluxio filesystem. This case should
// fail.
File localDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/localDir");
File innerDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/localDir/innerDir");
localDir.mkdir();
innerDir.mkdir();
generateFileContent("/localDir/srcFile", BufferUtils.getIncreasingByteArray(10));
mFileSystem.createFile(new AlluxioURI("/dstFile")).close();
int ret = mFsShell.run("copyFromLocal", localDir.getPath(), "/dstFile");
Assert.assertEquals(-1, ret);
Assert.assertFalse(mFileSystem.getStatus(new AlluxioURI("/dstFile")).isFolder());
Assert.assertFalse(mFileSystem.exists(new AlluxioURI("/dstFile/innerDir")));
}
use of alluxio.AlluxioURI in project alluxio by Alluxio.
the class CopyFromLocalCommandTest method copyFromLocalDir.
@Test
public void copyFromLocalDir() throws IOException, AlluxioException {
// Copy a directory from local to Alluxio filesystem, which the destination uri was not created
// before.
File srcOuterDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/outerDir");
File srcInnerDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/outerDir/innerDir");
File emptyDir = new File(mLocalAlluxioCluster.getAlluxioHome() + "/outerDir/emptyDir");
srcOuterDir.mkdir();
srcInnerDir.mkdir();
emptyDir.mkdir();
generateFileContent("/outerDir/srcFile1", BufferUtils.getIncreasingByteArray(10));
generateFileContent("/outerDir/innerDir/srcFile2", BufferUtils.getIncreasingByteArray(10));
int ret = mFsShell.run("copyFromLocal", srcOuterDir.getPath() + "/", "/dstDir");
Assert.assertEquals(0, ret);
AlluxioURI dstURI1 = new AlluxioURI("/dstDir/srcFile1");
AlluxioURI dstURI2 = new AlluxioURI("/dstDir/innerDir/srcFile2");
AlluxioURI dstURI3 = new AlluxioURI("/dstDir/emptyDir");
Assert.assertNotNull(mFileSystem.getStatus(dstURI1));
Assert.assertNotNull(mFileSystem.getStatus(dstURI2));
Assert.assertNotNull(mFileSystem.getStatus(dstURI3));
}
Aggregations