You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2011/02/28 17:25:07 UTC

svn commit: r1075409 - in /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools: NodeCmd.java NodeProbe.java

Author: brandonwilliams
Date: Mon Feb 28 16:25:06 2011
New Revision: 1075409

URL: http://svn.apache.org/viewvc?rev=1075409&view=rev
Log:
Add "join" command to nodetool
Patch by Pavel Yaskevich, reviewed by Sylvain Lebresne for
CASSANDRA-2160

Modified:
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeProbe.java

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1075409&r1=1075408&r2=1075409&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeCmd.java Mon Feb 28 16:25:06 2011
@@ -31,6 +31,8 @@ import java.util.Map.Entry;
 import java.util.concurrent.ExecutionException;
 
 import org.apache.cassandra.utils.Pair;
+import org.apache.cassandra.config.ConfigurationException;
+
 import org.apache.commons.cli.*;
 
 import org.apache.cassandra.cache.JMXInstrumentedCacheMBean;
@@ -74,7 +76,7 @@ public class NodeCmd
         DECOMMISSION, MOVE, LOADBALANCE, REMOVETOKEN, REPAIR, CLEANUP, COMPACT, SCRUB,
         SETCACHECAPACITY, GETCOMPACTIONTHRESHOLD, SETCOMPACTIONTHRESHOLD, NETSTATS, CFHISTOGRAMS,
         COMPACTIONSTATS, DISABLEGOSSIP, ENABLEGOSSIP, INVALIDATEKEYCACHE, INVALIDATEROWCACHE,
-        DISABLETHRIFT, ENABLETHRIFT
+        DISABLETHRIFT, ENABLETHRIFT, JOIN
     }
 
     
@@ -88,6 +90,7 @@ public class NodeCmd
         header.append("\nAvailable commands:\n");
         // No args
         addCmdHelp(header, "ring", "Print informations on the token ring");
+        addCmdHelp(header, "join", "Join the ring");
         addCmdHelp(header, "info", "Print node informations (uptime, load, ...)");
         addCmdHelp(header, "cfstats", "Print statistics on column families");
         addCmdHelp(header, "clearsnapshot", "Remove all existing snapshots");
@@ -465,7 +468,7 @@ public class NodeCmd
         }
     }
 
-    public static void main(String[] args) throws IOException, InterruptedException, ParseException
+    public static void main(String[] args) throws IOException, InterruptedException, ConfigurationException, ParseException
     {
         CommandLineParser parser = new PosixParser();
         ToolCommandLine cmd = null;
@@ -561,6 +564,16 @@ public class NodeCmd
                 probe.move(arguments[0]);
                 break;
 
+            case JOIN:
+                if (probe.isJoined())
+                {
+                    System.err.println("This node has already joined the ring.");
+                    System.exit(1);
+                }
+
+                probe.joinRing();
+                break;
+
             case REMOVETOKEN :
                 if (arguments.length != 1) { badUse("Missing an argument for removetoken (either status, force, or a token)"); }
                 else if (arguments[0].equals("status")) { nodeCmd.printRemovalStatus(System.out); }

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeProbe.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeProbe.java?rev=1075409&r1=1075408&r2=1075409&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeProbe.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/NodeProbe.java Mon Feb 28 16:25:06 2011
@@ -332,6 +332,16 @@ public class NodeProbe
         ssProxy.clearSnapshot();
     }
 
+    public boolean isJoined()
+    {
+        return ssProxy.isJoined();
+    }
+
+    public void joinRing() throws IOException, ConfigurationException
+    {
+        ssProxy.joinRing();
+    }
+
     public void decommission() throws InterruptedException
     {
         ssProxy.decommission();