Repository: cassandra-dtest
Updated Branches:
  refs/heads/master 95735a4d0 -> 3f89310c0


nodetool describecluster should be more informative

Patch by Preetika Tyagi; Reviewed by Ariel Weisberg for CASSANDRA-13853


Project: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/commit/3f89310c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/tree/3f89310c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/diff/3f89310c

Branch: refs/heads/master
Commit: 3f89310c05c96afd7e86eb6763386dbb41068878
Parents: 95735a4
Author: Preetika Tyagi <preetika.ty...@intel.com>
Authored: Wed Apr 11 15:16:22 2018 -0400
Committer: Ariel Weisberg <aweisb...@apple.com>
Committed: Thu Apr 12 16:12:34 2018 -0400

----------------------------------------------------------------------
 nodetool_test.py | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/3f89310c/nodetool_test.py
----------------------------------------------------------------------
diff --git a/nodetool_test.py b/nodetool_test.py
index e913b30..096e763 100644
--- a/nodetool_test.py
+++ b/nodetool_test.py
@@ -324,3 +324,67 @@ class TestNodetool(Tester):
             assert 'Number of concurrent view builders should be greater than 
0.', e.message
         else:
             self.fail("Expected error when setting and invalid value")
+
+    def test_describecluster_more_information_three_datacenters(self):
+        """
+        nodetool describecluster should be more informative. It should include 
detailes
+        for total node count, list of datacenters, RF, number of nodes per dc, 
how many
+        are down and version(s).
+        @jira_ticket CASSANDRA-13853
+        @expected_result This test invokes nodetool describecluster and 
matches the output with the expected one
+        """
+        cluster = self.cluster
+        cluster.populate([2, 3, 1]).start(wait_for_binary_proto=True)
+
+        node1_dc1, node2_dc1, node1_dc2, node2_dc2, node3_dc2, node1_dc3 = 
cluster.nodelist()
+
+        session_dc1 = self.patient_cql_connection(node1_dc1)
+        session_dc1.execute("create KEYSPACE ks1 WITH replication = {'class': 
'NetworkTopologyStrategy', 'dc1': 3, 'dc2':5, 'dc3':1}")
+
+        session_dc3 = self.patient_cql_connection(node1_dc3)
+        session_dc3.execute("create KEYSPACE ks2 WITH replication = {'class': 
'NetworkTopologyStrategy', 'dc1': 3, 'dc2':5, 'dc3':1}")
+
+        out_node1_dc1, err, _ = node1_dc1.nodetool('describecluster')
+        assert 0 == len(err), err
+
+        out_node2_dc1, err, _ = node2_dc1.nodetool('describecluster')
+        assert 0 == len(err), err
+        assert out_node1_dc1 == out_node2_dc1
+
+        out_node1_dc2, err, _ = node1_dc2.nodetool('describecluster')
+        assert 0 == len(err), err
+        assert out_node1_dc1 == out_node1_dc2
+
+        out_node2_dc2, err, _ = node2_dc2.nodetool('describecluster')
+        assert 0 == len(err), err
+        assert out_node1_dc1 == out_node2_dc2
+
+        out_node2_dc3, err, _ = node3_dc2.nodetool('describecluster')
+        assert 0 == len(err), err
+        assert out_node1_dc1 == out_node2_dc3
+
+        out_node1_dc3, err, _ = node1_dc3.nodetool('describecluster')
+        assert 0 == len(err), err
+        assert out_node1_dc1 == out_node1_dc3
+
+        logger.debug(out_node1_dc1)
+        assert 'Live: 6' in out_node1_dc1
+        assert 'Joining: 0' in out_node1_dc1
+        assert 'Moving: 0' in out_node1_dc1
+        assert 'Leaving: 0' in out_node1_dc1
+        assert 'Unreachable: 0' in out_node1_dc1
+        assert 'Data Centers:' in out_node1_dc1
+        assert 'dc1 #Nodes: 2 #Down: 0' in out_node1_dc1
+        assert 'dc2 #Nodes: 3 #Down: 0' in out_node1_dc1
+        assert 'dc3 #Nodes: 1 #Down: 0' in out_node1_dc1
+        assert 'Database versions:' in out_node1_dc1
+        assert '4.0.0: [127.0.0.6:7000, 127.0.0.5:7000, 127.0.0.4:7000, 
127.0.0.3:7000, 127.0.0.2:7000, 127.0.0.1:7000]' in out_node1_dc1
+        assert 'Keyspaces:' in out_node1_dc1
+        assert 'system_schema -> Replication class: LocalStrategy {}' in 
out_node1_dc1
+        assert 'system -> Replication class: LocalStrategy {}' in out_node1_dc1
+        assert 'system_traces -> Replication class: SimpleStrategy 
{replication_factor=2}' in out_node1_dc1
+        assert 'system_distributed -> Replication class: SimpleStrategy 
{replication_factor=3}' in out_node1_dc1
+        assert 'system_auth -> Replication class: SimpleStrategy 
{replication_factor=1}' in out_node1_dc1
+        assert 'ks1 -> Replication class: NetworkTopologyStrategy {dc2=5, 
dc1=3, dc3=1}' in out_node1_dc1
+        assert 'ks2 -> Replication class: NetworkTopologyStrategy {dc2=5, 
dc1=3, dc3=1}' in out_node1_dc1
+        assert 'Cluster Information:' in out_node1_dc1


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to