Topo2: Fixed instance device count and mastership
Change-Id: Ic6790df426765f929a2a0b42fe416501643659ba
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
index 323ccee..15332d4 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
@@ -30,6 +30,7 @@
import org.onosproject.net.Annotated;
import org.onosproject.net.Annotations;
import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
import org.onosproject.net.Host;
import org.onosproject.net.device.DeviceService;
import org.onosproject.net.flow.FlowRuleService;
@@ -162,13 +163,14 @@
}
private ObjectNode json(UiClusterMember member, boolean isUiAttached) {
+ int switchCount = mastershipService.getDevicesOf(member.id()).size();
return objectNode()
.put("id", member.id().toString())
.put("ip", member.ip().toString())
.put("online", member.isOnline())
.put("ready", member.isReady())
.put("uiAttached", isUiAttached)
- .put("switches", member.deviceCount());
+ .put("switches", switchCount);
}
/**
@@ -261,6 +263,11 @@
return result;
}
+ // Returns the name of the master node for the specified device id.
+ private String master(DeviceId deviceId) {
+ NodeId master = mastershipService.getMasterFor(deviceId);
+ return master != null ? master.toString() : "";
+ }
private ObjectNode json(UiNode node) {
if (node instanceof UiRegion) {
@@ -281,7 +288,7 @@
.put("nodeType", DEVICE)
.put("type", device.type())
.put("online", deviceService.isAvailable(device.id()))
- .put("master", nullIsEmpty(device.master()))
+ .put("master", master(device.id()))
.put("layer", device.layer());
Device d = device.backingDevice();