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=4d33152b41ca1a575d086a5ca04be8437e25d52b;hb=ca1defe23d12eff2428d1492a45a72579165547f;hp=70671a6a21ab112b339a07b6ab37b4c56c176b47;hpb=5c7fe226016d6997f411601502589e86ad9d8f87;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 70671a6a21..4d33152b41 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,20 +12,16 @@ import akka.actor.ActorRef; import akka.actor.ActorSelection; import akka.actor.ActorSystem; import akka.actor.Props; -import akka.event.Logging; -import akka.event.LoggingAdapter; -import com.google.protobuf.GeneratedMessage; -import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; -import org.opendaylight.controller.cluster.raft.protobuff.messages.AppendEntriesMessages; -import org.opendaylight.controller.cluster.raft.protobuff.messages.MockPayloadMessages; import com.google.common.base.Preconditions; - +import com.google.protobuf.GeneratedMessage; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; -import java.util.List; import java.util.Map; +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; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class MockRaftActorContext implements RaftActorContext { @@ -36,7 +32,9 @@ public class MockRaftActorContext implements RaftActorContext { private long lastApplied = 0; private final ElectionTerm electionTerm; private ReplicatedLog replicatedLog; - private Map peerAddresses = new HashMap(); + private Map peerAddresses = new HashMap<>(); + private ConfigParams configParams; + private boolean snapshotCaptureInitiated; public MockRaftActorContext(){ electionTerm = null; @@ -58,14 +56,17 @@ public class MockRaftActorContext implements RaftActorContext { private long currentTerm = 0; private String votedFor = ""; + @Override public long getCurrentTerm() { return currentTerm; } + @Override public String getVotedFor() { return votedFor; } + @Override public void update(long currentTerm, String votedFor){ this.currentTerm = currentTerm; this.votedFor = votedFor; @@ -79,13 +80,16 @@ public class MockRaftActorContext implements RaftActorContext { } }; + configParams = new DefaultConfigParamsImpl(); + initReplicatedLog(); } public void initReplicatedLog(){ this.replicatedLog = new SimpleReplicatedLog(); - this.replicatedLog.append(new MockReplicatedLogEntry(1, 1, new MockPayload(""))); + this.replicatedLog.append(new MockReplicatedLogEntry(1, 0, new MockPayload("1"))); + this.replicatedLog.append(new MockReplicatedLogEntry(1, 1, new MockPayload("2"))); } @Override public ActorRef actorOf(Props props) { @@ -128,6 +132,7 @@ public class MockRaftActorContext implements RaftActorContext { return lastApplied; } + @Override public void setReplicatedLog(ReplicatedLog replicatedLog) { this.replicatedLog = replicatedLog; } @@ -140,8 +145,8 @@ public class MockRaftActorContext implements RaftActorContext { return this.system; } - @Override public LoggingAdapter getLogger() { - return Logging.getLogger(system, this); + @Override public Logger getLogger() { + return LoggerFactory.getLogger(getClass()); } @Override public Map getPeerAddresses() { @@ -179,124 +184,47 @@ public class MockRaftActorContext implements RaftActorContext { @Override public ConfigParams getConfigParams() { - return new DefaultConfigParamsImpl(); + return configParams; } - public static class SimpleReplicatedLog implements ReplicatedLog { - private final List log = new ArrayList<>(); - - @Override public ReplicatedLogEntry get(long index) { - if(index >= log.size() || index < 0){ - return null; - } - return log.get((int) index); - } - - @Override public ReplicatedLogEntry last() { - if(log.size() == 0){ - return null; - } - return log.get(log.size()-1); - } - - @Override public long lastIndex() { - if(log.size() == 0){ - return -1; - } - - return last().getIndex(); - } - - @Override public long lastTerm() { - if(log.size() == 0){ - return -1; - } - - return last().getTerm(); - } - - @Override public void removeFrom(long index) { - if(index >= log.size() || index < 0){ - return; - } - - log.subList((int) index, log.size()).clear(); - //log.remove((int) index); - } + @Override + public void setSnapshotCaptureInitiated(boolean snapshotCaptureInitiated) { + this.snapshotCaptureInitiated = snapshotCaptureInitiated; + } - @Override public void removeFromAndPersist(long index) { - removeFrom(index); - } + @Override + public boolean isSnapshotCaptureInitiated() { + return snapshotCaptureInitiated; + } - @Override public void append(ReplicatedLogEntry replicatedLogEntry) { - log.add(replicatedLogEntry); - } + public void setConfigParams(ConfigParams configParams) { + this.configParams = configParams; + } + public static class SimpleReplicatedLog extends AbstractReplicatedLogImpl { @Override public void appendAndPersist( ReplicatedLogEntry replicatedLogEntry) { append(replicatedLogEntry); } - @Override public List getFrom(long index) { - if(index >= log.size() || index < 0){ - return Collections.EMPTY_LIST; - } - List entries = new ArrayList<>(); - for(int i=(int) index ; i < log.size() ; i++) { - entries.add(get(i)); - } - return entries; - } - - @Override public List getFrom(long index, int max) { - if(index >= log.size() || index < 0){ - return Collections.EMPTY_LIST; - } - List entries = new ArrayList<>(); - int maxIndex = (int) index + max; - if(maxIndex > log.size()){ - maxIndex = log.size(); - } - - for(int i=(int) index ; i < maxIndex ; i++) { - entries.add(get(i)); - } - return entries; - - } - - @Override public long size() { - return log.size(); - } - - @Override public boolean isPresent(long index) { - if(index >= log.size() || index < 0){ - return false; - } - - return true; - } - - @Override public boolean isInSnapshot(long index) { - return false; - } - - @Override public Object getSnapshot() { - return null; - } - - @Override public long getSnapshotIndex() { + @Override + public int dataSize() { return -1; } - @Override public long getSnapshotTerm() { - return -1; + @Override public void removeFromAndPersist(long index) { + removeFrom(index); } } public static class MockPayload extends Payload implements Serializable { + private static final long serialVersionUID = 3121380393130864247L; private String value = ""; + public MockPayload(){ + + } + public MockPayload(String s) { this.value = s; } @@ -314,16 +242,23 @@ public class MockRaftActorContext implements RaftActorContext { return this; } + @Override + public int size() { + return value.length(); + } + @Override public String getClientPayloadClassName() { return MockPayload.class.getName(); } + @Override public String toString() { return value; } } public static class MockReplicatedLogEntry implements ReplicatedLogEntry, Serializable { + private static final long serialVersionUID = 1L; private final long term; private final long index; @@ -347,5 +282,30 @@ public class MockRaftActorContext implements RaftActorContext { @Override public long getIndex() { return index; } + + @Override + public int size() { + return getData().size(); + } + } + + public static class MockReplicatedLogBuilder { + private final ReplicatedLog mockLog = new SimpleReplicatedLog(); + + public MockReplicatedLogBuilder createEntries(int start, int end, int term) { + for (int i=start; i