Membership Service fix on getMembers function
Change-Id: Ib175f0a7ffffca913ef337464bb313bc4b563fd6
diff --git a/core/net/src/main/java/org/onosproject/cluster/impl/MembershipManager.java b/core/net/src/main/java/org/onosproject/cluster/impl/MembershipManager.java
index 8d869ca..5daa03e 100644
--- a/core/net/src/main/java/org/onosproject/cluster/impl/MembershipManager.java
+++ b/core/net/src/main/java/org/onosproject/cluster/impl/MembershipManager.java
@@ -18,6 +18,7 @@
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -56,9 +57,10 @@
@Activate
public void activate() {
+ NodeId localId = clusterService.getLocalNode().id();
localMember = new Member(
- clusterService.getLocalNode().id(),
- clusterService.getVersion(clusterService.getLocalNode().id()));
+ localId,
+ clusterService.getVersion(localId));
log.info("Started");
}
@@ -84,6 +86,8 @@
@Override
public Set<Member> getMembers() {
return clusterService.getNodes().stream()
+ .filter(node -> Optional.ofNullable(clusterService.getVersion(node.id()))
+ .filter(version -> version.equals(localMember.version())).isPresent())
.map(this::toMemberId)
.collect(Collectors.toSet());
}