Bug 2461 : Adding capture snapshot JMX operation.
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / jmx / mbeans / shard / ShardStats.java
index 1f51c6f3a14e48076549ee4ef4b9ea1d663a439c..1e6107c786bb0729f553ba876982fd50268c0452 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard;
 
+import akka.actor.ActorRef;
 import akka.pattern.Patterns;
 import akka.util.Timeout;
 import com.google.common.base.Stopwatch;
@@ -20,6 +21,7 @@ import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 import org.opendaylight.controller.cluster.datastore.Shard;
+import org.opendaylight.controller.cluster.raft.base.messages.InitiateCaptureSnapshot;
 import org.opendaylight.controller.cluster.raft.client.messages.FollowerInfo;
 import org.opendaylight.controller.cluster.raft.client.messages.GetOnDemandRaftState;
 import org.opendaylight.controller.cluster.raft.client.messages.OnDemandRaftState;
@@ -344,4 +346,12 @@ public class ShardStats extends AbstractMXBean implements ShardStatsMXBean {
     public int getPendingTxCommitQueueSize() {
         return shard.getPendingTxCommitQueueSize();
     }
+
+    @Override
+    public void captureSnapshot() {
+        if(shard != null) {
+            shard.getSelf().tell(new InitiateCaptureSnapshot(), ActorRef.noSender());
+        }
+    }
+
 }