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