Bug 3020: Add leader version to LeaderStateChanged
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / behaviors / AbstractRaftActorBehavior.java
index c276d32cce33d5b5bfada40f7f62afb6244a2e07..fc2f137e886085b9f8de644a2a1ae2b660281fa3 100644 (file)
@@ -61,6 +61,8 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior {
      */
     protected String leaderId = null;
 
+    private short leaderPayloadVersion = -1;
+
     private long replicatedToAllIndex = -1;
 
     private final String logName;
@@ -130,7 +132,7 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior {
 
             sender.tell(
                 new AppendEntriesReply(context.getId(), currentTerm(), false,
-                    lastIndex(), lastTerm()), actor()
+                    lastIndex(), lastTerm(), context.getPayloadVersion()), actor()
             );
             return this;
         }
@@ -420,6 +422,15 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior {
         return leaderId;
     }
 
+    @Override
+    public short getLeaderPayloadVersion() {
+        return leaderPayloadVersion;
+    }
+
+    public void setLeaderPayloadVersion(short leaderPayloadVersion) {
+        this.leaderPayloadVersion = leaderPayloadVersion;
+    }
+
     protected RaftActorBehavior switchBehavior(RaftActorBehavior behavior) {
         LOG.info("{} :- Switching from behavior {} to {}", logName(), this.state(), behavior.state());
         try {