Updated Branches:
  refs/heads/trunk db4da73e5 -> 626b0783c

Allow nodetool issued w/o commands or with help to run even if no server is 
active
patch by mmainali reviewed by dbrosius for cassandra 5734


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

Branch: refs/heads/trunk
Commit: 626b0783c70f69e35861cfbbd523632d8d91537c
Parents: db4da73
Author: Dave Brosius <[email protected]>
Authored: Wed Jul 10 00:50:51 2013 -0400
Committer: Dave Brosius <[email protected]>
Committed: Wed Jul 10 00:52:59 2013 -0400

----------------------------------------------------------------------
 CHANGES.txt                                     |  2 +-
 .../org/apache/cassandra/tools/NodeCmd.java     | 58 +++++++++++---------
 2 files changed, 33 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/626b0783/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index deb37ba..4ede198 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -73,7 +73,7 @@
  * Auto paging in binary protocol (CASSANDRA-4415, 5714)
  * Don't tie client side use of AbstractType to JDBC (CASSANDRA-4495)
  * Adds new TimestampType to replace DateType (CASSANDRA-5723, CASSANDRA-5729)
-
+ * Allow nodetool with no args, and with help to run without a server 
(CASSANDRA-5734)
 
 1.2.7
  * make starting native protocol server idempotent (CASSANDRA-5728)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/626b0783/src/java/org/apache/cassandra/tools/NodeCmd.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java 
b/src/java/org/apache/cassandra/tools/NodeCmd.java
index 825c8d1..57c641a 100644
--- a/src/java/org/apache/cassandra/tools/NodeCmd.java
+++ b/src/java/org/apache/cassandra/tools/NodeCmd.java
@@ -969,46 +969,53 @@ public class NodeCmd
             }
         }
 
-        String username = cmd.getOptionValue(USERNAME_OPT.left);
-        String password = cmd.getOptionValue(PASSWORD_OPT.left);
+        NodeCommand command = null;
 
-        NodeProbe probe = null;
         try
         {
-            probe = username == null ? new NodeProbe(host, port) : new 
NodeProbe(host, port, username, password);
+            command = cmd.getCommand();
         }
-        catch (IOException ioe)
+        catch (IllegalArgumentException e)
         {
-            Throwable inner = findInnermostThrowable(ioe);
-            if (inner instanceof ConnectException)
-            {
-                System.err.printf("Failed to connect to '%s:%d': %s%n", host, 
port, inner.getMessage());
-                System.exit(1);
-            }
-            else if (inner instanceof UnknownHostException)
-            {
-                System.err.printf("Cannot resolve '%s': unknown host%n", host);
-                System.exit(1);
-            }
-            else
-            {
-                err(ioe, "Error connecting to remote JMX agent!");
-            }
+            badUse(e.getMessage());
+        }
+
+        if(NodeCommand.HELP.equals(command))
+        {
+            printUsage();
+            System.exit(0);
         }
+
+        NodeProbe probe = null;
+
         try
         {
-            NodeCommand command = null;
+            String username = cmd.getOptionValue(USERNAME_OPT.left);
+            String password = cmd.getOptionValue(PASSWORD_OPT.left);
 
             try
             {
-                command = cmd.getCommand();
+                probe = username == null ? new NodeProbe(host, port) : new 
NodeProbe(host, port, username, password);
             }
-            catch (IllegalArgumentException e)
+            catch (IOException ioe)
             {
-                badUse(e.getMessage());
+                Throwable inner = findInnermostThrowable(ioe);
+                if (inner instanceof ConnectException)
+                {
+                    System.err.printf("Failed to connect to '%s:%d': %s%n", 
host, port, inner.getMessage());
+                    System.exit(1);
+                }
+                else if (inner instanceof UnknownHostException)
+                {
+                    System.err.printf("Cannot resolve '%s': unknown host%n", 
host);
+                    System.exit(1);
+                }
+                else
+                {
+                    err(ioe, "Error connecting to remote JMX agent!");
+                }
             }
 
-
             NodeCmd nodeCmd = new NodeCmd(probe);
 
             // Execute the requested command.
@@ -1018,7 +1025,6 @@ public class NodeCmd
 
             switch (command)
             {
-                case HELP : printUsage(); break;
                 case RING :
                     if (arguments.length > 0) { nodeCmd.printRing(System.out, 
arguments[0]); }
                     else                      { nodeCmd.printRing(System.out, 
null); };

Reply via email to