Removing Rest and Netconf devices when the providers are disabled

Change-Id: Icac7146fea1295c11972ae4cbf87f8ef9689c671
diff --git a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
index 35bb288..9d2be56 100644
--- a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
+++ b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
@@ -126,10 +126,13 @@
 
     @Deactivate
     public void deactivate() {
+        controller.removeDeviceListener(innerNodeListener);
+        controller.getNetconfDevices().forEach(id ->
+            controller.removeDevice(controller.getDevicesMap().get(id)
+                                            .getDeviceInfo()));
         providerRegistry.unregister(this);
         providerService = null;
         cfgService.unregisterConfigFactory(factory);
-        controller.removeDeviceListener(innerNodeListener);
         log.info("Stopped");
     }