ONOS-2694: Unregister a device from resources when it is removed
Change-Id: I01e4dad8eea3e8042749d63696e1c1f2162c78f7
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
index 9da388c..904d9cd 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
@@ -52,6 +52,9 @@
case DEVICE_ADDED:
registerDeviceResource(device);
break;
+ case DEVICE_REMOVED:
+ unregisterDeviceResource(device);
+ break;
case PORT_ADDED:
registerPortResource(device, event.port());
break;
@@ -64,6 +67,10 @@
executor.submit(() -> adminService.registerResources(ResourcePath.ROOT, device.id()));
}
+ private void unregisterDeviceResource(Device device) {
+ executor.submit(() -> adminService.unregisterResources(ResourcePath.ROOT, device.id()));
+ }
+
private void registerPortResource(Device device, Port port) {
ResourcePath parent = new ResourcePath(device.id());
executor.submit(() -> adminService.registerResources(parent, port.number()));