Author: jbellis
Date: Sat Jan 22 15:58:39 2011
New Revision: 1062181

URL: http://svn.apache.org/viewvc?rev=1062181&view=rev
Log:
makekeyspace argument to "describe keyspace" in CLIoptional
patch by Pavel Yaskevich; reviewed by jbellis for CASSANDRA-2029

Modified:
    cassandra/branches/cassandra-0.7/CHANGES.txt
    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

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1062181&r1=1062180&r2=1062181&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Sat Jan 22 15:58:39 2011
@@ -28,6 +28,8 @@
  * fix streaming of multiple CFs during bootstrap (CASSANDRA-1992)
  * explicitly set JVM GC new generation size with -Xmn (CASSANDRA-1968)
  * add short options for CLI flags (CASSANDRA-1565)
+ * make keyspace argument to "describe keyspace" in CLI optional
+   when authenticated to keyspace already (CASSANDRA-2029)
 
 
 0.7.0-final

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=1062181&r1=1062180&r2=1062181&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 
Sat Jan 22 15:58:39 2011
@@ -321,8 +321,8 @@ showKeyspaces
     ;
 
 describeTable
-    : DESCRIBE KEYSPACE keyspace 
-        -> ^(NODE_DESCRIBE_TABLE keyspace)
+    : DESCRIBE KEYSPACE (keyspace)?
+        -> ^(NODE_DESCRIBE_TABLE (keyspace)?)
     ;
     
 useKeyspace

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=1062181&r1=1062180&r2=1062181&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
 Sat Jan 22 15:58:39 2011
@@ -1336,17 +1336,30 @@ public class CliClient extends CliUserHe
         }
     }
 
-    // DESCRIBE KEYSPACE <keyspace_name> 
+    // DESCRIBE KEYSPACE (<keyspace_name>)?
     private void executeDescribeKeySpace(Tree statement) throws TException, 
InvalidRequestException
     {
         if (!CliMain.isConnected())
             return;
 
-        // Get keySpace name
-        String keySpaceName = CliCompiler.getKeySpace(statement, 
thriftClient.describe_keyspaces());
 
-        if( keySpaceName == null ) {
-            sessionState.out.println("Keyspace argument required");
+        String keySpaceName;
+
+        // Get keyspace name
+        if (statement.getChildCount() == 0)
+        {
+            // trying to use current keyspace if keyspace name was not given
+            keySpaceName = keySpace;
+        }
+        else
+        {
+            // we have keyspace name as an argument
+            keySpaceName = CliCompiler.getKeySpace(statement, 
thriftClient.describe_keyspaces());
+        }
+
+        if (keySpaceName == null)
+        {
+            sessionState.out.println("Keyspace argument required if you are 
not authorized in any keyspace.");
             return;
         }
         

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=1062181&r1=1062180&r2=1062181&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
 Sat Jan 22 15:58:39 2011
@@ -97,8 +97,9 @@ public class CliUserHelp {
                 break;
 
             case CliParser.NODE_DESCRIBE_TABLE:
-                state.out.println("describe keyspace <keyspace>;\n");
-                state.out.println("Show additional information about the 
specified keyspace.\n");
+                state.out.println("describe keyspace (<keyspace>)?;\n");
+                state.out.println("Show additional information about the 
specified keyspace.");
+                state.out.println("Command could be used without <keyspace> 
argument if you are already authenticated to keyspace.\n");
                 state.out.println("example:");
                 state.out.println("describe keyspace system;");
                 break;
@@ -321,7 +322,7 @@ public class CliUserHelp {
             state.out.println("help <command>;                         Display 
detailed, command-specific help.");
             state.out.println("connect <hostname>/<port>;                      
      Connect to thrift service.");
             state.out.println("use <keyspace> [<username> 'password'];         
           Switch to a keyspace.");
-            state.out.println("describe keyspace <keyspacename>;               
              Describe keyspace.");
+            state.out.println("describe keyspace (<keyspacename>)?;            
              Describe keyspace.");
             state.out.println("exit;                                           
                       Exit CLI.");
             state.out.println("quit;                                           
                       Exit CLI.");
             state.out.println("show cluster name;                              
           Display cluster name.");


Reply via email to