Browse Source

svn merge -c 1305628 HDFS-3129 from trunk

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1305630 13f79535-47bb-0310-9956-ffa450edef68
Eli Collins 13 years ago
parent
commit
1cbb18d3e0

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -168,6 +168,9 @@ Release 0.23.3 - UNRELEASED
     HDFS-3089. Move FSDatasetInterface and the related classes to a package.
     (szetszwo)
 
+    HDFS-3129. NetworkTopology: add test that getLeaf should check for
+    invalid topologies. (Colin Patrick McCabe via eli)
+
   OPTIMIZATIONS
 
     HDFS-2477. Optimize computing the diff between a block report and the

+ 19 - 0
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/net/TestNetworkTopology.java

@@ -58,6 +58,25 @@ public class TestNetworkTopology extends TestCase {
     assertEquals(cluster.getNumOfLeaves(), dataNodes.length);
   }
 
+  public void testCreateInvalidTopology() throws Exception {
+    NetworkTopology invalCluster = new NetworkTopology();
+    DatanodeDescriptor invalDataNodes[] = new DatanodeDescriptor[] {
+      new DatanodeDescriptor(new DatanodeID("h1:5020"), "/d1/r1"),
+      new DatanodeDescriptor(new DatanodeID("h2:5020"), "/d1/r1"),
+      new DatanodeDescriptor(new DatanodeID("h3:5020"), "/d1")
+    };
+    invalCluster.add(invalDataNodes[0]);
+    invalCluster.add(invalDataNodes[1]);
+    try {
+      invalCluster.add(invalDataNodes[2]);
+      fail("expected InvalidTopologyException");
+    } catch (NetworkTopology.InvalidTopologyException e) {
+      assertEquals(e.getMessage(), "Invalid network topology. " +
+          "You cannot have a rack and a non-rack node at the same " +
+          "level of the network topology.");
+    }
+  }
+
   public void testRacks() throws Exception {
     assertEquals(cluster.getNumOfRacks(), 3);
     assertTrue(cluster.isOnSameRack(dataNodes[0], dataNodes[1]));