X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FRaftActorServerConfigurationSupport.java;h=46fe6269e37a907db36fe3d0ca7a5b9b9b52bd58;hp=09020812bd5c9212c14c90161b4d49a1be95c537;hb=d639c62a1e743ec846b15bf755b830b00f4cc7eb;hpb=b5e778befe870d280b8f7d16b862e7f306a243e3;ds=sidebyside diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java index 09020812bd..46fe6269e3 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorServerConfigurationSupport.java @@ -120,7 +120,7 @@ class RaftActorServerConfigurationSupport { private void onRemoveServer(RemoveServer removeServer, ActorRef sender) { LOG.debug("{}: onRemoveServer: {}, state: {}", raftContext.getId(), removeServer, currentOperationState); - boolean isSelf = removeServer.getServerId().equals(raftActor.getId()); + boolean isSelf = removeServer.getServerId().equals(raftContext.getId()); if(isSelf && !raftContext.hasFollowers()) { sender.tell(new RemoveServerReply(ServerChangeStatus.NOT_SUPPORTED, raftActor.getLeaderId()), raftActor.getSelf()); @@ -316,7 +316,7 @@ class RaftActorServerConfigurationSupport { // Sanity check - we could get an ApplyState from a previous operation that timed out so make // sure it's meant for us. if(operationContext.getContextId().equals(applyState.getIdentifier())) { - LOG.info("{}: {} has been successfully replicated to a majority of followers", raftActor.getId(), + LOG.info("{}: {} has been successfully replicated to a majority of followers", raftContext.getId(), applyState.getReplicatedLogEntry().getData()); timer.cancel(); @@ -678,28 +678,8 @@ class RaftActorServerConfigurationSupport { // leadership. boolean localServerChangedToNonVoting = Boolean.FALSE.equals(getOperation(). getServerVotingStatusMap().get(raftActor.getRaftActorContext().getId())); - if(succeeded && localServerChangedToNonVoting && raftActor.isLeader()) { - raftActor.initiateLeadershipTransfer(new RaftActorLeadershipTransferCohort.OnComplete() { - @Override - public void onSuccess(ActorRef raftActorRef, ActorRef replyTo) { - LOG.debug("{}: leader transfer succeeded after change to non-voting", raftActor.persistenceId()); - ensureFollowerState(raftActor); - } - - @Override - public void onFailure(ActorRef raftActorRef, ActorRef replyTo) { - LOG.debug("{}: leader transfer failed after change to non-voting", raftActor.persistenceId()); - ensureFollowerState(raftActor); - } - - private void ensureFollowerState(RaftActor raftActor) { - // Whether or not leadership transfer succeeded, we have to step down as leader and - // switch to Follower so ensure that. - if(raftActor.getRaftState() != RaftState.Follower) { - raftActor.initializeBehavior(); - } - } - }); + if (succeeded && localServerChangedToNonVoting) { + raftActor.becomeNonVoting(); } }