Removing Rest and Netconf devices when the providers are disabled
Change-Id: Icac7146fea1295c11972ae4cbf87f8ef9689c671
diff --git a/providers/rest/device/src/main/java/org/onosproject/provider/rest/device/impl/RestDeviceProvider.java b/providers/rest/device/src/main/java/org/onosproject/provider/rest/device/impl/RestDeviceProvider.java
index 8fa5f11..d8ebda6 100644
--- a/providers/rest/device/src/main/java/org/onosproject/provider/rest/device/impl/RestDeviceProvider.java
+++ b/providers/rest/device/src/main/java/org/onosproject/provider/rest/device/impl/RestDeviceProvider.java
@@ -135,13 +135,13 @@
log.info("Started");
}
-
@Deactivate
public void deactivate() {
+ cfgService.removeListener(cfgLister);
+ controller.getDevices().keySet().forEach(this::deviceRemoved);
providerRegistry.unregister(this);
providerService = null;
cfgService.unregisterConfigFactory(factory);
- cfgService.removeListener(cfgLister);
log.info("Stopped");
}
@@ -195,12 +195,10 @@
addedDevices.add(deviceId);
}
- //when do I call it ?
- public void deviceRemoved(RestSBDevice nodeId) {
- Preconditions.checkNotNull(nodeId, ISNOTNULL);
- DeviceId deviceId = nodeId.deviceId();
+ private void deviceRemoved(DeviceId deviceId) {
+ Preconditions.checkNotNull(deviceId, ISNOTNULL);
providerService.deviceDisconnected(deviceId);
- controller.removeDevice(nodeId);
+ controller.removeDevice(deviceId);
}
private void connectDevices() {
@@ -217,7 +215,7 @@
deviceAdded(device);
});
//Removing devices not wanted anymore
- toBeRemoved.stream().forEach(device -> deviceRemoved(device));
+ toBeRemoved.stream().forEach(device -> deviceRemoved(device.deviceId()));
}
} catch (ConfigException e) {