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%2FMockRaftActorContext.java;h=31a12d5659dcef801dce2bfa14357d9f53e58838;hb=6065ba82c90e366919a1b78105507b935b91af8e;hp=53cca237413ea7383c912cda09a8b9e6d6e6f098;hpb=f7bec652039ce01319095c51741bf870c383ee09;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java index 53cca23741..31a12d5659 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java @@ -12,11 +12,15 @@ import akka.actor.ActorRef; import akka.actor.ActorSelection; import akka.actor.ActorSystem; import akka.actor.Props; +import akka.japi.Procedure; import com.google.common.base.Preconditions; +import com.google.common.base.Supplier; import com.google.protobuf.GeneratedMessage; import java.io.Serializable; import java.util.HashMap; import java.util.Map; +import org.opendaylight.controller.cluster.DataPersistenceProvider; +import org.opendaylight.controller.cluster.NonPersistentDataProvider; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; import org.opendaylight.controller.protobuff.messages.cluster.raft.test.MockPayloadMessages; @@ -36,6 +40,8 @@ public class MockRaftActorContext implements RaftActorContext { private ConfigParams configParams; private boolean snapshotCaptureInitiated; private SnapshotManager snapshotManager; + private DataPersistenceProvider persistenceProvider = new NonPersistentDataProvider(); + private short payloadVersion; public MockRaftActorContext(){ electionTerm = new ElectionTerm() { @@ -195,6 +201,7 @@ public class MockRaftActorContext implements RaftActorContext { public SnapshotManager getSnapshotManager() { if(this.snapshotManager == null){ this.snapshotManager = new SnapshotManager(this, getLogger()); + this.snapshotManager.setCreateSnapshotCallable(NoopProcedure.instance()); } return this.snapshotManager; } @@ -203,8 +210,41 @@ public class MockRaftActorContext implements RaftActorContext { this.configParams = configParams; } + @Override + public long getTotalMemory() { + return Runtime.getRuntime().totalMemory(); + } + + @Override + public void setTotalMemoryRetriever(Supplier retriever) { + } + + @Override + public boolean hasFollowers() { + return getPeerAddresses().keySet().size() > 0; + } + + @Override + public DataPersistenceProvider getPersistenceProvider() { + return persistenceProvider; + } + + public void setPersistenceProvider(DataPersistenceProvider persistenceProvider) { + this.persistenceProvider = persistenceProvider; + } + + @Override + public short getPayloadVersion() { + return payloadVersion; + } + + public void setPayloadVersion(short payloadVersion) { + this.payloadVersion = payloadVersion; + } + public static class SimpleReplicatedLog extends AbstractReplicatedLogImpl { - @Override public void appendAndPersist( + @Override + public void appendAndPersist( ReplicatedLogEntry replicatedLogEntry) { append(replicatedLogEntry); } @@ -214,9 +254,26 @@ public class MockRaftActorContext implements RaftActorContext { return -1; } + @Override + public void captureSnapshotIfReady(ReplicatedLogEntry replicatedLogEntry) { + } + @Override public void removeFromAndPersist(long index) { removeFrom(index); } + + @Override + public void appendAndPersist(ReplicatedLogEntry replicatedLogEntry, Procedure callback) { + append(replicatedLogEntry); + + if(callback != null) { + try { + callback.apply(replicatedLogEntry); + } catch (Exception e) { + e.printStackTrace(); + } + } + } } public static class MockPayload extends Payload implements Serializable { @@ -237,8 +294,8 @@ public class MockRaftActorContext implements RaftActorContext { this.size = size; } - @Override public Map encode() { - Map map = new HashMap(); + @Override public Map, String> encode() { + Map, String> map = new HashMap<>(); map.put(MockPayloadMessages.value, value); return map; } @@ -378,7 +435,7 @@ public class MockRaftActorContext implements RaftActorContext { public MockReplicatedLogBuilder createEntries(int start, int end, int term) { for (int i=start; i