X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FMockRaftActorContext.java;h=2a1a94c549458a8515da3e8fbcfd4e8d04d63d1b;hp=297d781251cc69854363800171599dcdc2bdc1c7;hb=5aa58404a8ee1ad053742780439823309360a3a1;hpb=3927509ec3ecfa32a51b725d2b7155d425f5b877 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 297d781251..2a1a94c549 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,18 @@ 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.Collection; 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.policy.DefaultRaftPolicy; +import org.opendaylight.controller.cluster.raft.policy.RaftPolicy; 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; @@ -35,24 +42,13 @@ public class MockRaftActorContext implements RaftActorContext { private Map peerAddresses = new HashMap<>(); private ConfigParams configParams; private boolean snapshotCaptureInitiated; + private SnapshotManager snapshotManager; + private DataPersistenceProvider persistenceProvider = new NonPersistentDataProvider(); + private short payloadVersion; + private RaftPolicy raftPolicy = DefaultRaftPolicy.INSTANCE; public MockRaftActorContext(){ - electionTerm = null; - - initReplicatedLog(); - } - - public MockRaftActorContext(String id, ActorSystem system, ActorRef actor){ - this.id = id; - this.system = system; - this.actor = actor; - - final String id1 = id; electionTerm = new ElectionTerm() { - /** - * Identifier of the actor whose election term information this is - */ - private final String id = id1; private long currentTerm = 1; private String votedFor = ""; @@ -81,6 +77,13 @@ public class MockRaftActorContext implements RaftActorContext { }; configParams = new DefaultConfigParamsImpl(); + } + + public MockRaftActorContext(String id, ActorSystem system, ActorRef actor){ + this(); + this.id = id; + this.system = system; + this.actor = actor; initReplicatedLog(); } @@ -164,6 +167,11 @@ public class MockRaftActorContext implements RaftActorContext { return peerAddresses; } + @Override + public Collection getPeerIds() { + return peerAddresses.keySet(); + } + @Override public String getPeerAddress(String peerId) { return peerAddresses.get(peerId); } @@ -199,21 +207,62 @@ public class MockRaftActorContext implements RaftActorContext { } @Override - public void setSnapshotCaptureInitiated(boolean snapshotCaptureInitiated) { - this.snapshotCaptureInitiated = snapshotCaptureInitiated; + public SnapshotManager getSnapshotManager() { + if(this.snapshotManager == null){ + this.snapshotManager = new SnapshotManager(this, getLogger()); + this.snapshotManager.setCreateSnapshotCallable(NoopProcedure.instance()); + } + return this.snapshotManager; + } + + public void setConfigParams(ConfigParams configParams) { + this.configParams = configParams; + } + + @Override + public long getTotalMemory() { + return Runtime.getRuntime().totalMemory(); } @Override - public boolean isSnapshotCaptureInitiated() { - return snapshotCaptureInitiated; + public void setTotalMemoryRetriever(Supplier retriever) { } - public void setConfigParams(ConfigParams configParams) { - this.configParams = configParams; + @Override + public boolean hasFollowers() { + return getPeerIds().size() > 0; + } + + @Override + public DataPersistenceProvider getPersistenceProvider() { + return persistenceProvider; + } + + public void setPersistenceProvider(DataPersistenceProvider persistenceProvider) { + this.persistenceProvider = persistenceProvider; + } + + @Override + public short getPayloadVersion() { + return payloadVersion; + } + + @Override + public RaftPolicy getRaftPolicy() { + return this.raftPolicy; + } + + public void setRaftPolicy(RaftPolicy raftPolicy){ + this.raftPolicy = raftPolicy; + } + + 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); } @@ -223,25 +272,48 @@ 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 { private static final long serialVersionUID = 3121380393130864247L; private String value = ""; + private int size; - public MockPayload(){ - + public MockPayload() { } public MockPayload(String s) { this.value = s; + size = value.length(); + } + + public MockPayload(String s, int size) { + this(s); + 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; } @@ -255,7 +327,7 @@ public class MockRaftActorContext implements RaftActorContext { @Override public int size() { - return value.length(); + return size; } @Override public String getClientPayloadClassName() { @@ -381,7 +453,7 @@ public class MockRaftActorContext implements RaftActorContext { public MockReplicatedLogBuilder createEntries(int start, int end, int term) { for (int i=start; i