list mastership roles CLI command
Change-Id: I54dc296f90c4b8ceebe4e86816c3796da4d2d714
diff --git a/core/store/hz/cluster/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java b/core/store/hz/cluster/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
index e073b63..1def9f9 100644
--- a/core/store/hz/cluster/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
+++ b/core/store/hz/cluster/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
@@ -2,6 +2,8 @@
import static org.onlab.onos.mastership.MastershipEvent.Type.MASTER_CHANGED;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -143,6 +145,30 @@
return deserialize(masters.get(serialize(deviceId)));
}
+
+ @Override
+ public List<NodeId> getNodes(DeviceId deviceId) {
+ byte [] did = serialize(deviceId);
+ List<NodeId> nodes = new LinkedList<>();
+
+ //add current master to head - if there is one
+ ILock lock = theInstance.getLock(LOCK);
+ lock.lock();
+ try {
+ byte [] master = masters.get(did);
+ if (master != null) {
+ nodes.add((NodeId) deserialize(master));
+ }
+
+ for (byte [] el : standbys.get(serialize(deviceId))) {
+ nodes.add((NodeId) deserialize(el));
+ }
+ return nodes;
+ } finally {
+ lock.unlock();
+ }
+ }
+
@Override
public Set<DeviceId> getDevices(NodeId nodeId) {
ImmutableSet.Builder<DeviceId> builder = ImmutableSet.builder();