Added couple of methods to LeadershipService.
Change-Id: I259b1a282a51af9425e941a720336f89d66f1097
diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java
index a276367..ef651cb 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java
@@ -46,10 +46,12 @@
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.locks.Lock;
+import java.util.stream.Collectors;
import static com.google.common.base.Preconditions.checkArgument;
import static org.onlab.util.Tools.groupedThreads;
@@ -162,6 +164,28 @@
}
@Override
+ public Leadership getLeadership(String path) {
+ checkArgument(path != null);
+ Topic topic = topics.get(path);
+ if (topic != null) {
+ return new Leadership(topic.topicName(),
+ topic.leader(),
+ topic.term());
+ }
+ return null;
+ }
+
+ @Override
+ public Set<String> ownedTopics(NodeId nodeId) {
+ checkArgument(nodeId != null);
+ return topics.values()
+ .stream()
+ .filter(topic -> nodeId.equals(topic.leader()))
+ .map(topic -> topic.topicName)
+ .collect(Collectors.toSet());
+ }
+
+ @Override
public void runForLeadership(String path) {
checkArgument(path != null);
Topic topic = new Topic(path);