Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 5548bf45e -> 83d4762a6
  refs/heads/cassandra-2.1 399a4ecf9 -> fe8e92f8f
  refs/heads/trunk 57b5fb64c -> 931a51869


Add 'nodetool statusgossip'

Patch by Jan Karlsson, reviewed by Brandon Williams for CASSANDRA-8125


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

Branch: refs/heads/cassandra-2.0
Commit: 83d4762a6d6c28c792fadc1d7f228600097d924f
Parents: 5548bf4
Author: Brandon Williams <brandonwilli...@apache.org>
Authored: Mon Nov 3 14:58:04 2014 -0600
Committer: Brandon Williams <brandonwilli...@apache.org>
Committed: Mon Nov 3 14:58:04 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                  | 1 +
 src/java/org/apache/cassandra/service/StorageService.java    | 6 ++++++
 .../org/apache/cassandra/service/StorageServiceMBean.java    | 3 +++
 src/java/org/apache/cassandra/tools/NodeCmd.java             | 8 ++++++++
 src/java/org/apache/cassandra/tools/NodeProbe.java           | 5 +++++
 src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml   | 3 +++
 6 files changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0ec3ff1..97fb94a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.12:
+ * Add 'nodetool statusgossip' (CASSANDRA-8125)
  * Improve client notification that nodes are ready for requests 
(CASSANDRA-7510)
  * Handle negative timestamp in writetime method (CASSANDRA-8139)
  * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 1f831b9..066544a 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -293,6 +293,12 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
         }
     }
 
+    //should only be called via JMX
+    public boolean isGossipRunning()
+    {
+        return Gossiper.instance.isEnabled();
+    }
+
     // should only be called via JMX
     public void startRPCServer()
     {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java 
b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
index 6308aa5..0e2f55d 100644
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@ -392,6 +392,9 @@ public interface StorageServiceMBean extends 
NotificationEmitter
     // allows a user to recover a forcibly 'killed' node
     public void startGossiping();
 
+    // allows a user to see whether gossip is running or not
+    public boolean isGossipRunning();
+
     // allows a user to forcibly completely stop cassandra
     public void stopDaemon();
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/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 d9f3607..a397244 100644
--- a/src/java/org/apache/cassandra/tools/NodeCmd.java
+++ b/src/java/org/apache/cassandra/tools/NodeCmd.java
@@ -27,6 +27,7 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.Map.Entry;
 import java.util.concurrent.ExecutionException;
+
 import javax.management.openmbean.TabularData;
 
 import com.google.common.base.Joiner;
@@ -171,6 +172,7 @@ public class NodeCmd
         SNAPSHOT,
         STATUS,
         STATUSBINARY,
+        STATUSGOSSIP,
         STATUSTHRIFT,
         STOP,
         STOPDAEMON,
@@ -1246,6 +1248,7 @@ public class NodeCmd
                 case STATUSBINARY    : 
nodeCmd.printIsNativeTransportRunning(System.out); break;
                 case DISABLEGOSSIP   : probe.stopGossiping(); break;
                 case ENABLEGOSSIP    : probe.startGossiping(); break;
+                case STATUSGOSSIP    : 
nodeCmd.printIsGossipRunning(System.out); break;
                 case DISABLEHANDOFF  : probe.disableHintedHandoff(); break;
                 case ENABLEHANDOFF   :
                     if (arguments.length > 0) { 
probe.enableHintedHandoff(arguments[0]); }
@@ -1494,6 +1497,11 @@ public class NodeCmd
         System.exit(probe.isFailed() ? 1 : 0);
     }
 
+    private void printIsGossipRunning(PrintStream outs)
+    {
+        outs.println(probe.isGossipRunning() ? "running" : "not running");
+    }
+
     private void getLoggingLevels(PrintStream out)
     {
         // what if some one set a very long logger name? 50 space may not be 
enough...

http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java 
b/src/java/org/apache/cassandra/tools/NodeProbe.java
index 78dce76..849e368 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -782,6 +782,11 @@ public class NodeProbe
         ssProxy.startGossiping();
     }
 
+    public boolean isGossipRunning()
+    {
+        return ssProxy.isGossipRunning();
+    }
+
     public void stopThriftServer()
     {
         ssProxy.stopRPCServer();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
----------------------------------------------------------------------
diff --git a/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml 
b/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
index fa2b39c..523335e 100644
--- a/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
+++ b/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
@@ -100,6 +100,9 @@ commands:
   - name: gossipinfo
     help: |
       Shows the gossip information for the cluster
+  - name: statusgossip
+    help: |
+      Status of gossip
   - name: invalidatekeycache
     help: |
       Invalidate the key cache

Reply via email to