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%2FGetSnapshotReplyActor.java;h=0e8847c259883a23ce39a129b8450884d840df10;hp=ca09823a12cdbc56cc90489841a7236f7c6763a2;hb=0f02b7edeb1454c1a568f0f1b050757e7503ddf7;hpb=f1c3050779d7770ef6a12a67a1870765c3dfd9eb diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java index ca09823a12..0e8847c259 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java @@ -11,13 +11,14 @@ import akka.actor.ActorRef; import akka.actor.PoisonPill; import akka.actor.Props; import akka.actor.ReceiveTimeout; -import akka.actor.UntypedActor; +import akka.actor.UntypedAbstractActor; import com.google.common.base.Preconditions; import java.util.concurrent.TimeoutException; -import org.apache.commons.lang3.SerializationUtils; import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshot; import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshotReply; import org.opendaylight.controller.cluster.raft.client.messages.GetSnapshotReply; +import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload; +import org.opendaylight.controller.cluster.raft.persisted.Snapshot; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.duration.Duration; @@ -27,29 +28,31 @@ import scala.concurrent.duration.Duration; * * @author Thomas Pantelis */ -class GetSnapshotReplyActor extends UntypedActor { +class GetSnapshotReplyActor extends UntypedAbstractActor { private static final Logger LOG = LoggerFactory.getLogger(GetSnapshotReplyActor.class); private final Params params; - private GetSnapshotReplyActor(Params params) { + GetSnapshotReplyActor(final Params params) { this.params = params; getContext().setReceiveTimeout(params.receiveTimeout); } @Override - public void onReceive(Object message) { - if(message instanceof CaptureSnapshotReply) { - Snapshot snapshot = Snapshot.create(((CaptureSnapshotReply)message).getSnapshot(), + public void onReceive(final Object message) { + if (message instanceof CaptureSnapshotReply) { + Snapshot snapshot = Snapshot.create( + ((CaptureSnapshotReply)message).getSnapshotState(), params.captureSnapshot.getUnAppliedEntries(), params.captureSnapshot.getLastIndex(), params.captureSnapshot.getLastTerm(), params.captureSnapshot.getLastAppliedIndex(), params.captureSnapshot.getLastAppliedTerm(), - params.electionTerm.getCurrentTerm(), params.electionTerm.getVotedFor()); + params.electionTerm.getCurrentTerm(), params.electionTerm.getVotedFor(), + params.peerInformation); LOG.debug("{}: Received CaptureSnapshotReply, sending {}", params.id, snapshot); - params.replyToActor.tell(new GetSnapshotReply(params.id, SerializationUtils.serialize(snapshot)), getSelf()); + params.replyToActor.tell(new GetSnapshotReply(params.id, snapshot), getSelf()); getSelf().tell(PoisonPill.getInstance(), getSelf()); } else if (message instanceof ReceiveTimeout) { LOG.warn("{}: Got ReceiveTimeout for inactivity - did not receive CaptureSnapshotReply within {} ms", @@ -62,10 +65,11 @@ class GetSnapshotReplyActor extends UntypedActor { } } - public static Props props(CaptureSnapshot captureSnapshot, ElectionTerm electionTerm, ActorRef replyToActor, - Duration receiveTimeout, String id) { + public static Props props(final CaptureSnapshot captureSnapshot, final ElectionTerm electionTerm, + final ActorRef replyToActor, final Duration receiveTimeout, final String id, + final ServerConfigurationPayload updatedPeerInfo) { return Props.create(GetSnapshotReplyActor.class, new Params(captureSnapshot, electionTerm, replyToActor, - receiveTimeout, id)); + receiveTimeout, id, updatedPeerInfo)); } private static final class Params { @@ -74,14 +78,16 @@ class GetSnapshotReplyActor extends UntypedActor { final ElectionTerm electionTerm; final Duration receiveTimeout; final String id; + final ServerConfigurationPayload peerInformation; - Params(CaptureSnapshot captureSnapshot, ElectionTerm electionTerm, ActorRef replyToActor, - Duration receiveTimeout, String id) { + Params(final CaptureSnapshot captureSnapshot, final ElectionTerm electionTerm, final ActorRef replyToActor, + final Duration receiveTimeout, final String id, final ServerConfigurationPayload peerInfo) { this.captureSnapshot = Preconditions.checkNotNull(captureSnapshot); this.electionTerm = Preconditions.checkNotNull(electionTerm); this.replyToActor = Preconditions.checkNotNull(replyToActor); this.receiveTimeout = Preconditions.checkNotNull(receiveTimeout); this.id = Preconditions.checkNotNull(id); + this.peerInformation = peerInfo; } } }