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",