import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Supplier;
import java.util.ArrayList;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Supplier;
import java.util.ArrayList;
public RaftActorContextImpl(ActorRef actor, ActorContext context, String id,
ElectionTerm termInformation, long commitIndex, long lastApplied, Map<String, String> peerAddresses,
ConfigParams configParams, DataPersistenceProvider persistenceProvider, Logger logger) {
public RaftActorContextImpl(ActorRef actor, ActorContext context, String id,
ElectionTerm termInformation, long commitIndex, long lastApplied, Map<String, String> peerAddresses,
ConfigParams configParams, DataPersistenceProvider persistenceProvider, Logger logger) {
peerAddress = configParams.getPeerAddressResolver().resolve(peerId);
peerInfo.setAddress(peerAddress);
}
peerAddress = configParams.getPeerAddressResolver().resolve(peerId);
peerInfo.setAddress(peerAddress);
}
Set<String> currentPeers = new HashSet<>(this.getPeerIds());
for(ServerInfo server: serverConfig.getServerConfig()) {
Set<String> currentPeers = new HashSet<>(this.getPeerIds());
for(ServerInfo server: serverConfig.getServerConfig()) {
VotingState votingState = server.isVoting() ? VotingState.VOTING: VotingState.NON_VOTING;
if(!currentPeers.contains(server.getId())) {
this.addToPeers(server.getId(), null, votingState);
VotingState votingState = server.isVoting() ? VotingState.VOTING: VotingState.NON_VOTING;
if(!currentPeers.contains(server.getId())) {
this.addToPeers(server.getId(), null, votingState);
peerInfoMap.put(id, new PeerInfo(id, address, votingState));
}
peerInfoMap.put(id, new PeerInfo(id, address, votingState));
}
- @Override public void removePeer(String name) {
- peerInfoMap.remove(name);
+ @Override
+ public void removePeer(String name) {
+ if(getId().equals(name)) {
+ votingMember = false;
+ } else {
+ peerInfoMap.remove(name);
+ }