Trigger Device delete event on Link add
Change-Id: I20ab7cae0ac81e5528658ec702a7b190ff9ae7e0
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
index 1c342e0..34e8d51 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
@@ -638,18 +638,22 @@
log.error("Device {} on Port {} should have been removed prior to adding Link {}", d, dstPort, linkEvt);
DeviceImpl dev = getDeviceImpl(d);
dev.removeAttachmentPoint(dstPort);
- // XXX This implies that change is made to Device Object,
- // which need to be written to DB, how should that be done?
- // should we write here or ignore and leave DB in inconsistent state?
+ // This implies that change is made to Device Object.
+ // sending Device attachment point removed event
+ DeviceEvent rmEvent = new DeviceEvent(d.getMacAddress());
+ rmEvent.addAttachmentPoint(new SwitchPort(dstPort.getDpid(), dstPort.getNumber()));
+ removeDeviceEvent(rmEvent);
}
dstPortMem.removeAllDevice();
for(Device d : srcPortMem.getDevices() ) {
log.error("Device {} on Port {} should have been removed prior to adding Link {}", d, srcPort, linkEvt);
DeviceImpl dev = getDeviceImpl(d);
dev.removeAttachmentPoint(srcPort);
- // XXX This implies that change is made to Device Object,
- // which need to be written to DB, how should that be done?
- // should we write here or ignore and leave DB in inconsistent state?
+ // This implies that change is made to Device Object.
+ // sending Device attachment point removed event
+ DeviceEvent rmEvent = new DeviceEvent(d.getMacAddress());
+ rmEvent.addAttachmentPoint(new SwitchPort(dstPort.getDpid(), dstPort.getNumber()));
+ removeDeviceEvent(rmEvent);
}
srcPortMem.removeAllDevice();