import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload;
import org.opendaylight.controller.cluster.raft.persisted.ServerInfo;
import org.opendaylight.controller.cluster.raft.base.messages.UpdateElectionTerm;
-import org.opendaylight.controller.cluster.raft.client.messages.OnDemandRaftState;
import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal;
import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore;
import org.opendaylight.controller.md.cluster.datastore.model.CarsModel;
// Verify all data has been replicated. We expect 3 log entries and thus last applied index of 2 -
// 2 ServerConfigurationPayload entries and the transaction payload entry.
- RaftStateVerifier verifier = new RaftStateVerifier() {
- @Override
- public void verify(OnDemandRaftState raftState) {
- assertEquals("Commit index", 2, raftState.getCommitIndex());
- assertEquals("Last applied index", 2, raftState.getLastApplied());
- }
+ RaftStateVerifier verifier = raftState -> {
+ assertEquals("Commit index", 2, raftState.getCommitIndex());
+ assertEquals("Last applied index", 2, raftState.getLastApplied());
};
verifyRaftState(leaderNode1.configDataStore(), "cars", verifier);
@Test
public void testRemoveShardReplica() throws Exception {
- String name = "testRemoveShardReplicaLocal";
+ String name = "testRemoveShardReplica";
String moduleShardsConfig = "module-shards-member1-and-2-and-3.conf";
MemberNode leaderNode1 = MemberNode.builder(memberNodes).akkaConfig("Member1").testName(name ).
moduleShardsConfig(moduleShardsConfig).
moduleShardsConfig(moduleShardsConfig).build();
leaderNode1.configDataStore().waitTillReady();
+ replicaNode3.configDataStore().waitTillReady();
verifyRaftPeersPresent(leaderNode1.configDataStore(), "cars", "member-2", "member-3");
verifyRaftPeersPresent(replicaNode2.configDataStore(), "cars", "member-1", "member-3");
verifyRaftPeersPresent(replicaNode3.configDataStore(), "cars", "member-1", "member-2");
replicaNode2 = MemberNode.builder(memberNodes).akkaConfig("Member2").testName(name).
moduleShardsConfig(moduleShardsConfig).build();
+ replicaNode2.configDataStore().waitTillReady();
verifyRaftPeersPresent(replicaNode2.configDataStore(), "cars", "member-1");
// Invoke RPC service on member-1 to remove member-2
get(10, TimeUnit.SECONDS);
verifySuccessfulRpcResult(rpcResult);
- verifyRaftState(replicaNode2.configDataStore(), "cars", new RaftStateVerifier() {
- @Override
- public void verify(OnDemandRaftState raftState) {
- assertThat("Leader Id", raftState.getLeader(), anyOf(containsString("member-2"),
- containsString("member-3")));
- }
- });
+ verifyRaftState(replicaNode2.configDataStore(), "cars", raftState ->
+ assertThat("Leader Id", raftState.getLeader(), anyOf(containsString("member-2"), containsString("member-3"))));
verifyRaftPeersPresent(replicaNode2.configDataStore(), "cars", "member-3");
verifyRaftPeersPresent(replicaNode3.configDataStore(), "cars", "member-2");