Deprecating PortDiscovery in favour of DeviceDescritpionDiscovery
Change-Id: Ie9cff7937412c62c8a5a3b75b87a43952017f146
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 5b60fb9..eaafc30 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
@@ -40,11 +40,11 @@
import org.onosproject.net.config.NetworkConfigRegistry;
import org.onosproject.net.device.DefaultDeviceDescription;
import org.onosproject.net.device.DeviceDescription;
+import org.onosproject.net.device.DeviceDescriptionDiscovery;
import org.onosproject.net.device.DeviceProvider;
import org.onosproject.net.device.DeviceProviderRegistry;
import org.onosproject.net.device.DeviceProviderService;
-import org.onosproject.net.driver.DriverHandler;
-import org.onosproject.net.driver.DriverService;
+import org.onosproject.net.device.DeviceService;
import org.onosproject.net.provider.AbstractProvider;
import org.onosproject.net.provider.ProviderId;
import org.onosproject.protocol.rest.RestSBController;
@@ -93,7 +93,7 @@
protected CoreService coreService;
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected DriverService driverService;
+ protected DeviceService deviceService;
private DeviceProviderService providerService;
@@ -219,19 +219,27 @@
log.error("Configuration error {}", e);
}
log.debug("REST Devices {}", controller.getDevices());
- addedDevices.forEach(deviceId -> {
- DriverHandler h = driverService.createHandler(deviceId);
- PortDiscovery portConfig = h.behaviour(PortDiscovery.class);
- if (portConfig != null) {
- providerService.updatePorts(deviceId, portConfig.getPorts());
- } else {
- log.warn("No portGetter behaviour for device {}", deviceId);
- }
- });
+ addedDevices.forEach(this::discoverPorts);
addedDevices.clear();
}
+ private void discoverPorts(DeviceId deviceId) {
+ Device device = deviceService.getDevice(deviceId);
+ //TODO remove when PortDiscovery is removed from master
+ if (device.is(PortDiscovery.class)) {
+ PortDiscovery portConfig = device.as(PortDiscovery.class);
+ providerService.updatePorts(deviceId,
+ portConfig.getPorts());
+ } else if (device.is(DeviceDescriptionDiscovery.class)) {
+ DeviceDescriptionDiscovery deviceDescriptionDiscovery =
+ device.as(DeviceDescriptionDiscovery.class);
+ providerService.updatePorts(deviceId, deviceDescriptionDiscovery.discoverPortDetails());
+ } else {
+ log.warn("No portGetter behaviour for device {}", deviceId);
+ }
+ }
+
private boolean testDeviceConnection(RestSBDevice device) {
try {
return controller.get(device.deviceId(), "", "json") != null;