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 9da388cc17..904d9cd651 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 @@ final class ResourceDeviceListener implements DeviceListener { case DEVICE_ADDED: registerDeviceResource(device); break; + case DEVICE_REMOVED: + unregisterDeviceResource(device); + break; case PORT_ADDED: registerPortResource(device, event.port()); break; @@ -64,6 +67,10 @@ final class ResourceDeviceListener implements DeviceListener { 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()));