X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FRaftActor.java;h=988789b4011e4f3ba9e9e9abe6b0c3009704c810;hb=a2a56c27c18eeedff28796034be220ac049d6a26;hp=ae8b6fe8e3aadc23a33cf57531a43ff9cefed8d4;hpb=886fe1a50077d9dc9c4c36f938fc7c86317cb149;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java index ae8b6fe8e3..988789b401 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java @@ -168,8 +168,7 @@ public abstract class RaftActor extends UntypedPersistentActor { } else if (message instanceof FindLeader) { getSender().tell( - new FindLeaderReply( - context.getPeerAddress(currentBehavior.getLeaderId())), + new FindLeaderReply(getLeaderAddress()), getSelf() ); @@ -183,12 +182,6 @@ public abstract class RaftActor extends UntypedPersistentActor { // TODO: Handle failure in saving the snapshot - } else if (message instanceof FindLeader){ - - getSender().tell(new FindLeaderReply( - context.getPeerAddress(currentBehavior.getLeaderId())), - getSelf()); - } else if (message instanceof AddRaftPeer){ // FIXME : Do not add raft peers like this. @@ -269,18 +262,9 @@ public abstract class RaftActor extends UntypedPersistentActor { * @return A reference to the leader if known, null otherwise */ protected ActorSelection getLeader(){ - String leaderId = currentBehavior.getLeaderId(); - if (leaderId == null) { - return null; - } - String peerAddress = context.getPeerAddress(leaderId); - LOG.debug("getLeader leaderId = " + leaderId + " peerAddress = " - + peerAddress); + String leaderAddress = getLeaderAddress(); - if(peerAddress == null){ - return null; - } - return context.actorSelection(peerAddress); + return context.actorSelection(leaderAddress); } /** @@ -424,6 +408,21 @@ public abstract class RaftActor extends UntypedPersistentActor { deleteMessages(sequenceNumber); } + private String getLeaderAddress(){ + if(isLeader()){ + return getSelf().path().toString(); + } + String leaderId = currentBehavior.getLeaderId(); + if (leaderId == null) { + return null; + } + String peerAddress = context.getPeerAddress(leaderId); + LOG.debug("getLeaderAddress leaderId = " + leaderId + " peerAddress = " + + peerAddress); + + return peerAddress; + } + private class ReplicatedLogImpl extends AbstractReplicatedLogImpl {