public virtual void TestCreateInvalidTopology() { NetworkTopology invalCluster = new NetworkTopology(); DatanodeDescriptor[] invalDataNodes = new DatanodeDescriptor[] { DFSTestUtil.GetDatanodeDescriptor ("1.1.1.1", "/d1/r1"), DFSTestUtil.GetDatanodeDescriptor("2.2.2.2", "/d1/r1"), DFSTestUtil .GetDatanodeDescriptor("3.3.3.3", "/d1") }; invalCluster.Add(invalDataNodes[0]); invalCluster.Add(invalDataNodes[1]); try { invalCluster.Add(invalDataNodes[2]); NUnit.Framework.Assert.Fail("expected InvalidTopologyException"); } catch (NetworkTopology.InvalidTopologyException e) { NUnit.Framework.Assert.IsTrue(e.Message.StartsWith("Failed to add ")); NUnit.Framework.Assert.IsTrue(e.Message.Contains("You cannot have a rack and a non-rack node at the same " + "level of the network topology.")); } }
public virtual void TestCountNumNodes() { // create the topology NetworkTopology cluster = new NetworkTopology(); cluster.Add(GetNewNode("node1", "/d1/r1")); TestClusterTopology.NodeElement node2 = GetNewNode("node2", "/d1/r2"); cluster.Add(node2); cluster.Add(GetNewNode("node3", "/d1/r3")); TestClusterTopology.NodeElement node3 = GetNewNode("node4", "/d1/r4"); cluster.Add(node3); // create exclude list IList <Node> excludedNodes = new AList <Node>(); Assert.Equal("4 nodes should be available", 4, cluster.CountNumOfAvailableNodes (NodeBase.Root, excludedNodes)); TestClusterTopology.NodeElement deadNode = GetNewNode("node5", "/d1/r2"); excludedNodes.AddItem(deadNode); Assert.Equal("4 nodes should be available with extra excluded Node" , 4, cluster.CountNumOfAvailableNodes(NodeBase.Root, excludedNodes)); // add one existing node to exclude list excludedNodes.AddItem(node3); Assert.Equal("excluded nodes with ROOT scope should be considered" , 3, cluster.CountNumOfAvailableNodes(NodeBase.Root, excludedNodes)); Assert.Equal("excluded nodes without ~ scope should be considered" , 2, cluster.CountNumOfAvailableNodes("~" + deadNode.GetNetworkLocation(), excludedNodes )); Assert.Equal("excluded nodes with rack scope should be considered" , 1, cluster.CountNumOfAvailableNodes(deadNode.GetNetworkLocation(), excludedNodes )); // adding the node in excluded scope to excluded list excludedNodes.AddItem(node2); Assert.Equal("excluded nodes with ~ scope should be considered" , 2, cluster.CountNumOfAvailableNodes("~" + deadNode.GetNetworkLocation(), excludedNodes )); // getting count with non-exist scope. Assert.Equal("No nodes should be considered for non-exist scope" , 0, cluster.CountNumOfAvailableNodes("/non-exist", excludedNodes)); }
public virtual void SetupDatanodes() { dataNodes = new DatanodeDescriptor[] { DFSTestUtil.GetDatanodeDescriptor("1.1.1.1" , "/d1/r1"), DFSTestUtil.GetDatanodeDescriptor("2.2.2.2", "/d1/r1"), DFSTestUtil .GetDatanodeDescriptor("3.3.3.3", "/d1/r2"), DFSTestUtil.GetDatanodeDescriptor("4.4.4.4" , "/d1/r2"), DFSTestUtil.GetDatanodeDescriptor("5.5.5.5", "/d1/r2"), DFSTestUtil .GetDatanodeDescriptor("6.6.6.6", "/d2/r3"), DFSTestUtil.GetDatanodeDescriptor("7.7.7.7" , "/d2/r3"), DFSTestUtil.GetDatanodeDescriptor("8.8.8.8", "/d2/r3"), DFSTestUtil .GetDatanodeDescriptor("9.9.9.9", "/d3/r1"), DFSTestUtil.GetDatanodeDescriptor("10.10.10.10" , "/d3/r1"), DFSTestUtil.GetDatanodeDescriptor("11.11.11.11", "/d3/r1"), DFSTestUtil .GetDatanodeDescriptor("12.12.12.12", "/d3/r2"), DFSTestUtil.GetDatanodeDescriptor ("13.13.13.13", "/d3/r2"), DFSTestUtil.GetDatanodeDescriptor("14.14.14.14", "/d4/r1" ), DFSTestUtil.GetDatanodeDescriptor("15.15.15.15", "/d4/r1"), DFSTestUtil.GetDatanodeDescriptor ("16.16.16.16", "/d4/r1"), DFSTestUtil.GetDatanodeDescriptor("17.17.17.17", "/d4/r1" ), DFSTestUtil.GetDatanodeDescriptor("18.18.18.18", "/d4/r1"), DFSTestUtil.GetDatanodeDescriptor ("19.19.19.19", "/d4/r1"), DFSTestUtil.GetDatanodeDescriptor("20.20.20.20", "/d4/r1" ) }; for (int i = 0; i < dataNodes.Length; i++) { cluster.Add(dataNodes[i]); } dataNodes[9].SetDecommissioned(); dataNodes[10].SetDecommissioned(); }