Starting implementation of UI topo modeling. WIP.
If reviewing this, please refer to http://tinyurl.com/onos-ui-topo-model
Change-Id: Iab75f213ca0a7d36619f9c498387b402ac9477af
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/ModelCache.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/ModelCache.java
index 6a76eb5..6d5de44 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/ModelCache.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/ModelCache.java
@@ -24,6 +24,7 @@
import org.onosproject.net.Host;
import org.onosproject.net.Link;
import org.onosproject.net.region.Region;
+import org.onosproject.ui.model.topo.UiClusterMember;
import org.onosproject.ui.model.topo.UiDevice;
import org.onosproject.ui.model.topo.UiTopology;
@@ -42,6 +43,11 @@
this.dispatcher = eventDispatcher;
}
+ @Override
+ public String toString() {
+ return "ModelCache{" + uiTopology + "}";
+ }
+
/**
* Clear our model.
*/
@@ -61,6 +67,44 @@
}
+ /**
+ * Updates the model (adds a new instance if necessary) with the given
+ * controller node information.
+ *
+ * @param cnode controller node to be added/updated
+ */
+ void addOrUpdateClusterMember(ControllerNode cnode) {
+ UiClusterMember member = uiTopology.findClusterMember(cnode.id());
+ if (member != null) {
+ member.update(cnode);
+ } else {
+ member = new UiClusterMember(cnode);
+ uiTopology.add(member);
+ }
+
+ // TODO: post event
+ }
+
+ void removeClusterMember(ControllerNode cnode) {
+ // TODO: find cluster member assoc. with parameter; remove from model
+ // TODO: post event
+ }
+
+ void updateMasterships(DeviceId deviceId, RoleInfo roleInfo) {
+ // TODO: store the updated mastership information
+ // TODO: post event
+ }
+
+ void addOrUpdateRegion(Region region) {
+ // TODO: find or create region assoc. with parameter
+ // TODO: post event
+ }
+
+ void removeRegion(Region region) {
+ // TODO: find region assoc. with parameter; remove from model
+ // TODO: post event
+ }
+
void addOrUpdateDevice(Device device) {
// TODO: find or create device assoc. with parameter
// FIXME
@@ -80,32 +124,6 @@
}
- void addOrUpdateClusterMember(ControllerNode cnode) {
- // TODO: find or create cluster member assoc. with parameter
- // TODO: post event
- }
-
- void removeClusterMember(ControllerNode cnode) {
- // TODO: find cluster member assoc. with parameter; remove from model
- // TODO: post event
- }
-
-
- void updateMasterships(DeviceId deviceId, RoleInfo roleInfo) {
- // TODO: store the updated mastership information
- // TODO: post event
- }
-
- void addOrUpdateRegion(Region region) {
- // TODO: find or create region assoc. with parameter
- // TODO: post event
- }
-
- void removeRegion(Region region) {
- // TODO: find region assoc. with parameter; remove from model
- // TODO: post event
- }
-
void addOrUpdateLink(Link link) {
// TODO: find ui-link assoc. with parameter; create or update.
// TODO: post event
@@ -129,4 +147,22 @@
void removeHost(Host host) {
// TODO: find host assoc. with parameter; remove from model
}
+
+ /**
+ * Returns the number of members in the cluster.
+ *
+ * @return number of cluster members
+ */
+ public int clusterMemberCount() {
+ return uiTopology.clusterMemberCount();
+ }
+
+ /**
+ * Returns the number of regions configured in the topology.
+ *
+ * @return number of regions
+ */
+ public int regionCount() {
+ return uiTopology.regionCount();
+ }
}