From a52315d2c3f758fff2be75e42928576752616bcd Mon Sep 17 00:00:00 2001 From: Akira Ajisaka Date: Thu, 15 Jun 2017 13:46:20 +0900 Subject: [PATCH] HDFS-11736. OIV tests should not write outside 'target' directory. Contributed by Yiqun Lin. (cherry picked from commit 315f07700dcfe32513b87f63070db854ecb3cf48) (cherry picked from commit 88fa17c2383baafbfb6b43b69e08cf40493c774a) --- .../hadoop/hdfs/server/namenode/TestCheckpoint.java | 4 ++-- .../hdfs/server/namenode/ha/TestStandbyCheckpoints.java | 8 ++++++-- .../tools/offlineImageViewer/TestOfflineImageViewer.java | 7 ++++--- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCheckpoint.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCheckpoint.java index d914b0912d7..5737ba2dde2 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCheckpoint.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestCheckpoint.java @@ -44,7 +44,6 @@ import java.util.List; import java.util.Random; -import com.google.common.io.Files; import org.apache.commons.cli.ParseException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -2438,7 +2437,8 @@ public void testCommandLineParsing() throws ParseException { public void testLegacyOivImage() throws Exception { MiniDFSCluster cluster = null; SecondaryNameNode secondary = null; - File tmpDir = Files.createTempDir(); + File tmpDir = GenericTestUtils.getTestDir("testLegacyOivImage"); + tmpDir.mkdirs(); Configuration conf = new HdfsConfiguration(); conf.set(DFSConfigKeys.DFS_NAMENODE_LEGACY_OIV_IMAGE_DIR_KEY, tmpDir.getAbsolutePath()); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java index 0a4e4d107fa..f245755037c 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestStandbyCheckpoints.java @@ -21,7 +21,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; -import com.google.common.io.Files; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -114,7 +113,8 @@ public void setupCluster() throws Exception { } protected Configuration setupCommonConfig() { - tmpOivImgDir = Files.createTempDir(); + tmpOivImgDir = GenericTestUtils.getTestDir("TestStandbyCheckpoints"); + tmpOivImgDir.mkdirs(); Configuration conf = new Configuration(); conf.setInt(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_CHECK_PERIOD_KEY, 1); @@ -136,6 +136,10 @@ public void shutdownCluster() throws IOException { cluster.shutdown(); cluster = null; } + + if (tmpOivImgDir != null) { + FileUtil.fullyDelete(tmpOivImgDir); + } } @Test(timeout = 300000) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java index 6ec237493c6..3c2724cbd2a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java @@ -56,8 +56,6 @@ import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; -import com.google.common.io.Files; - import org.apache.commons.io.FileUtils; import org.apache.commons.io.output.NullOutputStream; import org.apache.commons.logging.Log; @@ -116,7 +114,10 @@ public class TestOfflineImageViewer { // multiple tests. @BeforeClass public static void createOriginalFSImage() throws IOException { - tempDir = Files.createTempDir(); + File[] nnDirs = MiniDFSCluster.getNameNodeDirectory( + MiniDFSCluster.getBaseDirectory(), 0, 0); + tempDir = nnDirs[0]; + MiniDFSCluster cluster = null; try { Configuration conf = new Configuration();