- @Test
- public void testSnapshotAfterStartupWithMigratedReplicatedLogEntry() {
- TEST_LOG.info("testSnapshotAfterStartupWithMigratedReplicatedLogEntry starting");
-
- String persistenceId = factory.generateActorId("test-actor-");
-
- InMemoryJournal.addEntry(persistenceId, 1, new UpdateElectionTerm(1, persistenceId));
- MockRaftActorContext.MockPayload expPayload = new MockRaftActorContext.MockPayload("A");
- InMemoryJournal.addEntry(persistenceId, 2, new org.opendaylight.controller.cluster.raft.ReplicatedLogImplEntry(
- 0, 1, expPayload));
-
- doTestSnapshotAfterStartupWithMigratedMessage(persistenceId, true, snapshot -> {
- assertEquals("Unapplied entries size", 1, snapshot.getUnAppliedEntries().size());
- assertEquals("Unapplied entry term", 1, snapshot.getUnAppliedEntries().get(0).getTerm());
- assertEquals("Unapplied entry index", 0, snapshot.getUnAppliedEntries().get(0).getIndex());
- assertEquals("Unapplied entry data", expPayload, snapshot.getUnAppliedEntries().get(0).getData());
- }, ByteState.empty());
-
- TEST_LOG.info("testSnapshotAfterStartupWithMigratedReplicatedLogEntry ending");
- }
-
- private TestActorRef<MockRaftActor> doTestSnapshotAfterStartupWithMigratedServerConfigPayload(boolean persistent) {
- String persistenceId = factory.generateActorId("test-actor-");
-
- org.opendaylight.controller.cluster.raft.ServerConfigurationPayload persistedServerConfig =
- new org.opendaylight.controller.cluster.raft.ServerConfigurationPayload(Arrays.asList(
- new org.opendaylight.controller.cluster.raft.ServerConfigurationPayload.ServerInfo(
- persistenceId, true),
- new org.opendaylight.controller.cluster.raft.ServerConfigurationPayload.ServerInfo(
- "downNode", true)));
-
- ServerConfigurationPayload expectedServerConfig = new ServerConfigurationPayload(Arrays.asList(
- new ServerInfo(persistenceId, true), new ServerInfo("downNode", true)));
-
- InMemoryJournal.addEntry(persistenceId, 1, new UpdateElectionTerm(1, persistenceId));
- InMemoryJournal.addEntry(persistenceId, 3, new SimpleReplicatedLogEntry(0, 1, persistedServerConfig));
-
- TestActorRef<MockRaftActor> actor = doTestSnapshotAfterStartupWithMigratedMessage(persistenceId,
- persistent, snapshot -> {
- assertEquals("getElectionVotedFor", persistenceId, snapshot.getElectionVotedFor());
- assertEquals("getElectionTerm", 1, snapshot.getElectionTerm());
- assertEquals("getServerConfiguration", new HashSet<>(expectedServerConfig.getServerConfig()),
- new HashSet<>(snapshot.getServerConfiguration().getServerConfig()));
- }, ByteState.empty());
-
- return actor;
- }
-
- @Test
- public void testSnapshotAfterStartupWithMigratedSnapshot() throws Exception {
- TEST_LOG.info("testSnapshotAfterStartupWithMigratedSnapshot starting");
-
- String persistenceId = factory.generateActorId("test-actor-");
-
- List<Object> snapshotData = Arrays.asList(new MockPayload("1"));
- final MockSnapshotState snapshotState = new MockSnapshotState(snapshotData);
-
- org.opendaylight.controller.cluster.raft.Snapshot legacy = org.opendaylight.controller.cluster.raft.Snapshot
- .create(SerializationUtils.serialize((Serializable) snapshotData),
- Arrays.asList(new SimpleReplicatedLogEntry(6, 2, new MockPayload("payload"))),
- 6, 2, 5, 1, 3, "member-1", new ServerConfigurationPayload(Arrays.asList(
- new ServerInfo(persistenceId, true), new ServerInfo("2", false))));
- InMemorySnapshotStore.addSnapshot(persistenceId, legacy);
-
- doTestSnapshotAfterStartupWithMigratedMessage(persistenceId, true, snapshot -> {
- assertEquals("getLastIndex", legacy.getLastIndex(), snapshot.getLastIndex());
- assertEquals("getLastTerm", legacy.getLastTerm(), snapshot.getLastTerm());
- assertEquals("getLastAppliedIndex", legacy.getLastAppliedIndex(), snapshot.getLastAppliedIndex());
- assertEquals("getLastAppliedTerm", legacy.getLastAppliedTerm(), snapshot.getLastAppliedTerm());
- assertEquals("getState", snapshotState, snapshot.getState());
- assertEquals("Unapplied entries size", legacy.getUnAppliedEntries().size(),
- snapshot.getUnAppliedEntries().size());
- assertEquals("Unapplied entry term", legacy.getUnAppliedEntries().get(0).getTerm(),
- snapshot.getUnAppliedEntries().get(0).getTerm());
- assertEquals("Unapplied entry index", legacy.getUnAppliedEntries().get(0).getIndex(),
- snapshot.getUnAppliedEntries().get(0).getIndex());
- assertEquals("Unapplied entry data", legacy.getUnAppliedEntries().get(0).getData(),
- snapshot.getUnAppliedEntries().get(0).getData());
- assertEquals("getElectionVotedFor", legacy.getElectionVotedFor(), snapshot.getElectionVotedFor());
- assertEquals("getElectionTerm", legacy.getElectionTerm(), snapshot.getElectionTerm());
- assertEquals("getServerConfiguration", Sets.newHashSet(legacy.getServerConfiguration().getServerConfig()),
- Sets.newHashSet(snapshot.getServerConfiguration().getServerConfig()));
- }, snapshotState);
-
- TEST_LOG.info("testSnapshotAfterStartupWithMigratedSnapshot ending");
- }
-