Topo2 - Update device model on status change
Change-Id: I1387c3a5296ef4a4c27908251d43cf34bef4fdf4
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Region.js b/web/gui/src/main/webapp/app/view/topo2/topo2Region.js
index 7938fd6..09c6ce7 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Region.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Region.js
@@ -104,6 +104,9 @@
getLink: function (linkId) {
return this.model.get('links').get(linkId);
},
+ getDevice: function (deviceId) {
+ return this.model.get('devices').get(deviceId);
+ },
filterRegionNodes: function (predicate) {
var nodes = this.regionNodes();
return _.filter(nodes, predicate);
@@ -144,12 +147,14 @@
},
update: function (event) {
+
if (this[event.type]) {
this[event.type](event);
- this.layout.update();
} else {
$log.error("Unhanded topology update", event);
}
+
+ this.layout.update()
},
// Topology update event handlers
@@ -162,6 +167,22 @@
LINK_REMOVED: function (event) {
var link = this.getLink(event.subject);
link.remove();
+ this.model.get('links').remove(link);
+ },
+ DEVICE_ADDED_OR_UPDATED: function (event) {
+
+ var device;
+
+ if (event.memo === 'added') {
+ device = this.model.get('devices').add(event.data);
+ $log('Added device', device)
+ } else if (event.memo === 'updated') {
+ device = this.getDevice(event.subject);
+ device.set(event.data);
+ }
+ },
+ DEVICE_REMOVED: function (event) {
+ device.remove();
}
});