Sho SHIMIZU
Committed by Gerrit Code Review

ONOS-2694: Unregister a device from resources when it is removed

Change-Id: I01e4dad8eea3e8042749d63696e1c1f2162c78f7
...@@ -52,6 +52,9 @@ final class ResourceDeviceListener implements DeviceListener { ...@@ -52,6 +52,9 @@ final class ResourceDeviceListener implements DeviceListener {
52 case DEVICE_ADDED: 52 case DEVICE_ADDED:
53 registerDeviceResource(device); 53 registerDeviceResource(device);
54 break; 54 break;
55 + case DEVICE_REMOVED:
56 + unregisterDeviceResource(device);
57 + break;
55 case PORT_ADDED: 58 case PORT_ADDED:
56 registerPortResource(device, event.port()); 59 registerPortResource(device, event.port());
57 break; 60 break;
...@@ -64,6 +67,10 @@ final class ResourceDeviceListener implements DeviceListener { ...@@ -64,6 +67,10 @@ final class ResourceDeviceListener implements DeviceListener {
64 executor.submit(() -> adminService.registerResources(ResourcePath.ROOT, device.id())); 67 executor.submit(() -> adminService.registerResources(ResourcePath.ROOT, device.id()));
65 } 68 }
66 69
70 + private void unregisterDeviceResource(Device device) {
71 + executor.submit(() -> adminService.unregisterResources(ResourcePath.ROOT, device.id()));
72 + }
73 +
67 private void registerPortResource(Device device, Port port) { 74 private void registerPortResource(Device device, Port port) {
68 ResourcePath parent = new ResourcePath(device.id()); 75 ResourcePath parent = new ResourcePath(device.id());
69 executor.submit(() -> adminService.registerResources(parent, port.number())); 76 executor.submit(() -> adminService.registerResources(parent, port.number()));
......