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();


Reply via email to