You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/02/10 03:44:50 UTC

svn commit: r1069206 - in /cassandra/branches/cassandra-0.7: src/java/org/apache/cassandra/cli/Cli.g src/java/org/apache/cassandra/cli/CliClient.java src/java/org/apache/cassandra/cli/CliUserHelp.java test/unit/org/apache/cassandra/cli/CliTest.java

Author: jbellis
Date: Thu Feb 10 02:44:50 2011
New Revision: 1069206

URL: http://svn.apache.org/viewvc?rev=1069206&view=rev
Log:
add cli 'describe cluster' command
patch by Pavel Yaskevich; reviewed by thobbs for CASSANDRA-2127

Modified:
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/Cli.g
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliUserHelp.java
    cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/Cli.g
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/Cli.g?rev=1069206&r1=1069205&r2=1069206&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/Cli.g (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/Cli.g Thu Feb 10 02:44:50 2011
@@ -36,6 +36,7 @@ tokens {
     //
     NODE_CONNECT;
     NODE_DESCRIBE_TABLE;
+    NODE_DESCRIBE_CLUSTER;
     NODE_USE_TABLE;
     NODE_EXIT;
     NODE_HELP;
@@ -138,6 +139,7 @@ statement
     | exitStatement
     | countStatement
     | describeTable
+    | describeCluster
     | addKeyspace
     | addColumnFamily
     | updateKeyspace
@@ -172,6 +174,8 @@ helpStatement
         -> ^(NODE_HELP NODE_USE_TABLE)
     | HELP DESCRIBE KEYSPACE 
         -> ^(NODE_HELP NODE_DESCRIBE_TABLE)
+    | HELP DESCRIBE 'CLUSTER'
+        -> ^(NODE_HELP NODE_DESCRIBE_CLUSTER)
     | HELP EXIT 
         -> ^(NODE_HELP NODE_EXIT)
     | HELP QUIT 
@@ -325,6 +329,11 @@ describeTable
         -> ^(NODE_DESCRIBE_TABLE (keyspace)?)
     ;
     
+describeCluster
+    : DESCRIBE 'CLUSTER'
+        -> ^(NODE_DESCRIBE_CLUSTER)
+    ;
+
 useKeyspace
     : USE keyspace ( username )? ( password )? 
         -> ^(NODE_USE_TABLE keyspace ( username )? ( password )?)

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java?rev=1069206&r1=1069205&r2=1069206&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java Thu Feb 10 02:44:50 2011
@@ -170,6 +170,9 @@ public class CliClient extends CliUserHe
                 case CliParser.NODE_DESCRIBE_TABLE:
                     executeDescribeKeySpace(tree);
                     break;
+                case CliParser.NODE_DESCRIBE_CLUSTER:
+                    executeDescribeCluster();
+                    break;
                 case CliParser.NODE_USE_TABLE:
                     executeUseKeySpace(tree);
                     break;
@@ -1385,6 +1388,33 @@ public class CliClient extends CliUserHe
         describeKeySpace(keySpaceName, null);
     }
 
+    // ^(NODE_DESCRIBE_CLUSTER) or describe: schema_versions, partitioner, snitch
+    private void executeDescribeCluster()
+    {
+        if (!CliMain.isConnected())
+            return;
+
+        sessionState.out.println("Cluster Information:");
+        try
+        {
+            sessionState.out.println("   Snitch: " + thriftClient.describe_snitch());
+            sessionState.out.println("   Partitioner: " + thriftClient.describe_partitioner());
+
+            sessionState.out.println("   Schema versions: ");
+            Map<String,List<String>> versions = thriftClient.describe_schema_versions();
+
+            for (String version : versions.keySet())
+            {
+                sessionState.out.println("\t" + version + ": " + versions.get(version));
+            }
+        }
+        catch (Exception e)
+        {
+            String message = (e instanceof InvalidRequestException) ? ((InvalidRequestException) e).getWhy() : e.getMessage();
+            sessionState.err.println("Error retrieving data: " + message);
+        }
+    }
+
     // process a statement of the form: connect hostname/port
     private void executeConnect(Tree statement)
     {

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliUserHelp.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliUserHelp.java?rev=1069206&r1=1069205&r2=1069206&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliUserHelp.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliUserHelp.java Thu Feb 10 02:44:50 2011
@@ -106,6 +106,11 @@ public class CliUserHelp {
                 state.out.println("describe keyspace system;");
                 break;
 
+            case CliParser.NODE_DESCRIBE_CLUSTER:
+                state.out.println("describe cluster;\n");
+                state.out.println("Display information about cluster: snitch, partitioner, schema versions.");
+                break;
+
             case CliParser.NODE_EXIT:
                 state.out.println("exit;");
                 state.out.println("quit;\n");
@@ -337,6 +342,7 @@ public class CliUserHelp {
             state.out.println("describe keyspace (<keyspacename>)?;                          Describe keyspace.");
             state.out.println("exit;                                                                  Exit CLI.");
             state.out.println("quit;                                                                  Exit CLI.");
+            state.out.println("describe cluster;                             Display information about cluster.");
             state.out.println("show cluster name;                                         Display cluster name.");
             state.out.println("show keyspaces;                                          Show list of keyspaces.");
             state.out.println("show api version;                                       Show server API version.");

Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1069206&r1=1069205&r2=1069206&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java (original)
+++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java Thu Feb 10 02:44:50 2011
@@ -115,6 +115,8 @@ public class CliTest extends CleanupHelp
         "set myCF['key']['scName']['firstname'] = 'John';",
         "get myCF['key']['scName']",
         "use TestKEYSpace;",
+        "describe cluster;",
+        "help describe cluster;",
         "show cluster name",
         "show api version",
         "help help",