Fixed the handling of removeDevice events to ensure devices are removed from the database
diff --git a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
index 256008a..ed6d85f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/core/internal/DeviceStorageImpl.java
@@ -114,6 +114,10 @@
IDeviceObject dev;
try {
if ((dev = ope.searchDevice(device.getMACAddressString())) != null) {
+ for (IIpv4Address ipv4AddressVertex : dev.getIpv4Addresses()) {
+ ope.removeIpv4Address(ipv4AddressVertex);
+ }
+
ope.removeDevice(dev);
ope.commit();
log.error("DeviceStorage:removeDevice mac:{} done", device.getMACAddressString());