import akka.actor.ActorRef;
import akka.actor.Props;
import akka.serialization.Serialization;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
import javax.annotation.Nullable;
+import org.opendaylight.controller.cluster.access.concepts.MemberName;
import org.opendaylight.controller.cluster.datastore.DatastoreContext;
import org.opendaylight.controller.cluster.datastore.Shard;
import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
Props newProps(SchemaContext schemaContext) {
Preconditions.checkNotNull(builder);
- Props props = builder.id(shardId).peerAddresses(initialPeerAddresses).datastoreContext(datastoreContext).
- schemaContext(schemaContext).props();
+ Props props = builder.id(shardId).peerAddresses(initialPeerAddresses).datastoreContext(datastoreContext)
+ .schemaContext(schemaContext).props();
builder = null;
return props;
}
}
@Nullable
- ActorRef getActor(){
+ ActorRef getActor() {
return actor;
}
}
}
- void updatePeerAddress(String peerId, String peerAddress, ActorRef sender){
+ void updatePeerAddress(String peerId, String peerAddress, ActorRef sender) {
LOG.info("updatePeerAddress for peer {} with address {}", peerId, peerAddress);
- if(actor != null) {
- if(LOG.isDebugEnabled()) {
- LOG.debug("Sending PeerAddressResolved for peer {} with address {} to {}",
- peerId, peerAddress, actor.path());
- }
+ if (actor != null) {
+ LOG.debug("Sending PeerAddressResolved for peer {} with address {} to {}", peerId,
+ peerAddress, actor.path());
actor.tell(new PeerAddressResolved(peerId, peerAddress), sender);
}
notifyOnShardInitializedCallbacks();
}
- void peerDown(String memberName, String peerId, ActorRef sender) {
- if(actor != null) {
+ void peerDown(MemberName memberName, String peerId, ActorRef sender) {
+ if (actor != null) {
actor.tell(new PeerDown(memberName, peerId), sender);
}
}
- void peerUp(String memberName, String peerId, ActorRef sender) {
- if(actor != null) {
+ void peerUp(MemberName memberName, String peerId, ActorRef sender) {
+ if (actor != null) {
actor.tell(new PeerUp(memberName, peerId), sender);
}
}
}
boolean isShardReadyWithLeaderId() {
- return leaderAvailable && isShardReady() && !RaftState.IsolatedLeader.name().equals(role) &&
- (isLeader() || addressResolver.resolve(leaderId) != null);
+ return leaderAvailable && isShardReady() && !RaftState.IsolatedLeader.name().equals(role)
+ && !RaftState.PreLeader.name().equals(role)
+ && (isLeader() || addressResolver.resolve(leaderId) != null);
}
boolean isShardInitialized() {
}
String getSerializedLeaderActor() {
- if(isLeader()) {
+ if (isLeader()) {
return Serialization.serializedActorPath(getActor());
} else {
return addressResolver.resolve(leaderId);
}
private void notifyOnShardInitializedCallbacks() {
- if(onShardInitializedSet.isEmpty()) {
+ if (onShardInitializedSet.isEmpty()) {
return;
}
ready ? "ready" : "initialized", onShardInitializedSet.size());
Iterator<OnShardInitialized> iter = onShardInitializedSet.iterator();
- while(iter.hasNext()) {
+ while (iter.hasNext()) {
OnShardInitialized onShardInitialized = iter.next();
if (!(onShardInitialized instanceof OnShardReady) || ready) {
iter.remove();
notifyOnShardInitializedCallbacks();
}
- void setFollowerSyncStatus(boolean syncStatus){
+ String getRole() {
+ return role;
+ }
+
+ void setFollowerSyncStatus(boolean syncStatus) {
this.followerSyncStatus = syncStatus;
}
- boolean isInSync(){
- if(RaftState.Follower.name().equals(this.role)){
+ boolean isInSync() {
+ if (RaftState.Follower.name().equals(this.role)) {
return followerSyncStatus;
- } else if(RaftState.Leader.name().equals(this.role)){
+ } else if (RaftState.Leader.name().equals(this.role)) {
return true;
}
}
boolean setLeaderId(String leaderId) {
- boolean changed = !Objects.equals(this.leaderId, leaderId);
+ final boolean changed = !Objects.equals(this.leaderId, leaderId);
this.leaderId = leaderId;
- if(leaderId != null) {
+ if (leaderId != null) {
this.leaderAvailable = true;
}
notifyOnShardInitializedCallbacks();
void setLeaderAvailable(boolean leaderAvailable) {
this.leaderAvailable = leaderAvailable;
- if(leaderAvailable) {
+ if (leaderAvailable) {
notifyOnShardInitializedCallbacks();
}
}
void setActiveMember(boolean isActiveMember) {
this.isActiveMember = isActiveMember;
}
-}
\ No newline at end of file
+}