You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ae...@apache.org on 2016/10/13 22:35:25 UTC
[35/51] [abbrv] hadoop git commit: HDFS-10965. Add unit test for HDFS
command 'dfsadmin -printTopology'. Contributed by Xiaobing Zhou
HDFS-10965. Add unit test for HDFS command 'dfsadmin -printTopology'. Contributed by Xiaobing Zhou
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7ba7092b
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7ba7092b
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7ba7092b
Branch: refs/heads/HDFS-7240
Commit: 7ba7092bbcbbccfa24b672414d315656e600096c
Parents: b84c489
Author: Mingliang Liu <li...@apache.org>
Authored: Tue Oct 11 16:47:39 2016 -0700
Committer: Mingliang Liu <li...@apache.org>
Committed: Tue Oct 11 17:23:54 2016 -0700
----------------------------------------------------------------------
.../apache/hadoop/hdfs/tools/TestDFSAdmin.java | 50 ++++++++++++++++++++
1 file changed, 50 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7ba7092b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdmin.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdmin.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdmin.java
index 94ecb9e..b49f73d 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdmin.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSAdmin.java
@@ -37,6 +37,7 @@ import org.apache.hadoop.hdfs.server.datanode.DataNode;
import org.apache.hadoop.hdfs.server.datanode.StorageLocation;
import org.apache.hadoop.hdfs.server.namenode.NameNode;
import org.apache.hadoop.test.GenericTestUtils;
+import org.apache.hadoop.test.PathUtils;
import org.apache.hadoop.util.ToolRunner;
import org.junit.After;
import org.junit.Before;
@@ -364,6 +365,55 @@ public class TestDFSAdmin {
}
@Test(timeout = 30000)
+ public void testPrintTopology() throws Exception {
+ redirectStream();
+
+ /* init conf */
+ final Configuration dfsConf = new HdfsConfiguration();
+ final File baseDir = new File(
+ PathUtils.getTestDir(getClass()),
+ GenericTestUtils.getMethodName());
+ dfsConf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, baseDir.getAbsolutePath());
+
+ final int numDn = 4;
+ final String[] racks = {
+ "/d1/r1", "/d1/r2",
+ "/d2/r1", "/d2/r2"};
+
+ /* init cluster using topology */
+ try (MiniDFSCluster miniCluster = new MiniDFSCluster.Builder(dfsConf)
+ .numDataNodes(numDn).racks(racks).build()) {
+
+ miniCluster.waitActive();
+ assertEquals(numDn, miniCluster.getDataNodes().size());
+ final DFSAdmin dfsAdmin = new DFSAdmin(dfsConf);
+
+ resetStream();
+ final int ret = ToolRunner.run(dfsAdmin, new String[] {"-printTopology"});
+
+ /* collect outputs */
+ final List<String> outs = Lists.newArrayList();
+ scanIntoList(out, outs);
+
+ /* verify results */
+ assertEquals(0, ret);
+ assertEquals(
+ "There should be three lines per Datanode: the 1st line is"
+ + " rack info, 2nd node info, 3rd empty line. The total"
+ + " should be as a result of 3 * numDn.",
+ 12, outs.size());
+ assertThat(outs.get(0),
+ is(allOf(containsString("Rack:"), containsString("/d1/r1"))));
+ assertThat(outs.get(3),
+ is(allOf(containsString("Rack:"), containsString("/d1/r2"))));
+ assertThat(outs.get(6),
+ is(allOf(containsString("Rack:"), containsString("/d2/r1"))));
+ assertThat(outs.get(9),
+ is(allOf(containsString("Rack:"), containsString("/d2/r2"))));
+ }
+ }
+
+ @Test(timeout = 30000)
public void testNameNodeGetReconfigurationStatus() throws IOException,
InterruptedException, TimeoutException {
ReconfigurationUtil ru = mock(ReconfigurationUtil.class);
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org