X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FRaftActorTest.java;h=6e52748bde17de33e285c97ef24f4534c8e4ee71;hb=d3293cf5dce9f4379f3c7c3d90bf04dd7a02930a;hp=48b555faff286c0393cb2c6ec39030c651751822;hpb=93e6f3bfc003d4ce2d968761dff963615a0b799d;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java index 48b555faff..6e52748bde 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java @@ -63,17 +63,13 @@ import org.opendaylight.controller.cluster.PersistentDataProvider; import org.opendaylight.controller.cluster.notifications.LeaderStateChanged; import org.opendaylight.controller.cluster.notifications.RoleChanged; import org.opendaylight.controller.cluster.raft.MockRaftActorContext.MockPayload; -import org.opendaylight.controller.cluster.raft.ServerConfigurationPayload.ServerInfo; -import org.opendaylight.controller.cluster.raft.base.messages.ApplyJournalEntries; import org.opendaylight.controller.cluster.raft.base.messages.ApplySnapshot; import org.opendaylight.controller.cluster.raft.base.messages.ApplyState; import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshot; import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshotReply; -import org.opendaylight.controller.cluster.raft.base.messages.DeleteEntries; import org.opendaylight.controller.cluster.raft.base.messages.LeaderTransitioning; import org.opendaylight.controller.cluster.raft.base.messages.SendHeartBeat; import org.opendaylight.controller.cluster.raft.base.messages.SwitchBehavior; -import org.opendaylight.controller.cluster.raft.base.messages.UpdateElectionTerm; import org.opendaylight.controller.cluster.raft.behaviors.Follower; import org.opendaylight.controller.cluster.raft.behaviors.Leader; import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior; @@ -81,6 +77,11 @@ import org.opendaylight.controller.cluster.raft.client.messages.GetSnapshot; import org.opendaylight.controller.cluster.raft.client.messages.GetSnapshotReply; import org.opendaylight.controller.cluster.raft.messages.AppendEntries; import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply; +import org.opendaylight.controller.cluster.raft.persisted.ApplyJournalEntries; +import org.opendaylight.controller.cluster.raft.persisted.DeleteEntries; +import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload; +import org.opendaylight.controller.cluster.raft.persisted.ServerInfo; +import org.opendaylight.controller.cluster.raft.persisted.UpdateElectionTerm; import org.opendaylight.controller.cluster.raft.policy.DisableElectionsRaftPolicy; import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal; import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore; @@ -311,24 +312,14 @@ public class RaftActorTest extends AbstractActorTest { DeleteEntries deleteEntries = new DeleteEntries(1); mockRaftActor.handleRecover(deleteEntries); - org.opendaylight.controller.cluster.raft.RaftActor.DeleteEntries deprecatedDeleteEntries = - new org.opendaylight.controller.cluster.raft.RaftActor.DeleteEntries(1); - mockRaftActor.handleRecover(deprecatedDeleteEntries); - UpdateElectionTerm updateElectionTerm = new UpdateElectionTerm(5, "member2"); mockRaftActor.handleRecover(updateElectionTerm); - org.opendaylight.controller.cluster.raft.RaftActor.UpdateElectionTerm deprecatedUpdateElectionTerm = - new org.opendaylight.controller.cluster.raft.RaftActor.UpdateElectionTerm(6, "member3"); - mockRaftActor.handleRecover(deprecatedUpdateElectionTerm); - verify(mockSupport).handleRecoveryMessage(same(snapshotOffer), any(PersistentDataProvider.class)); verify(mockSupport).handleRecoveryMessage(same(logEntry), any(PersistentDataProvider.class)); verify(mockSupport).handleRecoveryMessage(same(applyJournalEntries), any(PersistentDataProvider.class)); verify(mockSupport).handleRecoveryMessage(same(deleteEntries), any(PersistentDataProvider.class)); - verify(mockSupport).handleRecoveryMessage(same(deprecatedDeleteEntries), any(PersistentDataProvider.class)); verify(mockSupport).handleRecoveryMessage(same(updateElectionTerm), any(PersistentDataProvider.class)); - verify(mockSupport).handleRecoveryMessage(same(deprecatedUpdateElectionTerm), any(PersistentDataProvider.class)); } @Test @@ -659,7 +650,7 @@ public class RaftActorTest extends AbstractActorTest { assertTrue(leaderActor.getRaftActorContext().getSnapshotManager().isCapturing()); // The commit is needed to complete the snapshot creation process - leaderActor.getRaftActorContext().getSnapshotManager().commit(-1); + leaderActor.getRaftActorContext().getSnapshotManager().commit(-1, -1); // capture snapshot reply should remove the snapshotted entries only assertEquals(3, leaderActor.getReplicatedLog().size()); @@ -762,7 +753,7 @@ public class RaftActorTest extends AbstractActorTest { assertTrue(followerActor.getRaftActorContext().getSnapshotManager().isCapturing()); // The commit is needed to complete the snapshot creation process - followerActor.getRaftActorContext().getSnapshotManager().commit(-1); + followerActor.getRaftActorContext().getSnapshotManager().commit(-1, -1); // capture snapshot reply should remove the snapshotted entries only till replicatedToAllIndex assertEquals(3, followerActor.getReplicatedLog().size()); //indexes 5,6,7 left in the log @@ -960,40 +951,6 @@ public class RaftActorTest extends AbstractActorTest { }}; } - @Test - public void testRaftActorOnRecoverySnapshot() throws Exception { - TEST_LOG.info("testRaftActorOnRecoverySnapshot"); - - new JavaTestKit(getSystem()) {{ - String persistenceId = factory.generateActorId("follower-"); - - DefaultConfigParamsImpl config = new DefaultConfigParamsImpl(); - - // Set the heartbeat interval high to essentially disable election otherwise the test - // may fail if the actor is switched to Leader - config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS)); - - ImmutableMap peerAddresses = ImmutableMap.builder().put("member1", "address").build(); - - // Create mock ReplicatedLogEntry - ReplicatedLogEntry replLogEntry = new MockRaftActorContext.MockReplicatedLogEntry(1,1, - new MockRaftActorContext.MockPayload("F", 1)); - - InMemoryJournal.addEntry(persistenceId, 1, replLogEntry); - - TestActorRef ref = factory.createTestActor( - MockRaftActor.props(persistenceId, peerAddresses, config)); - - MockRaftActor mockRaftActor = ref.underlyingActor(); - - mockRaftActor.waitForRecoveryComplete(); - - mockRaftActor.waitForInitializeBehaviorComplete(); - - verify(mockRaftActor.snapshotCohortDelegate, timeout(5000)).createSnapshot(any(ActorRef.class)); - }}; - } - @Test public void testSwitchBehavior(){ String persistenceId = factory.generateActorId("leader-"); @@ -1131,9 +1088,6 @@ public class RaftActorTest extends AbstractActorTest { mockRaftActor.waitForRecoveryComplete(); - // Wait for snapshot after recovery - verify(mockRaftActor.snapshotCohortDelegate, timeout(5000)).createSnapshot(any(ActorRef.class)); - mockRaftActor.snapshotCohortDelegate = mock(RaftActorSnapshotCohort.class); raftActorRef.tell(GetSnapshot.INSTANCE, kit.getRef()); @@ -1359,7 +1313,7 @@ public class RaftActorTest extends AbstractActorTest { MessageCollectorActor.clearMessages(notifierActor); - raftActorRef.tell(LeaderTransitioning.INSTANCE, ActorRef.noSender()); + raftActorRef.tell(new LeaderTransitioning("leader"), ActorRef.noSender()); leaderStateChange = MessageCollectorActor.expectFirstMatching(notifierActor, LeaderStateChanged.class); assertEquals("getMemberId", persistenceId, leaderStateChange.getMemberId());