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()));