Deprecating PortDiscovery in favour of DeviceDescritpionDiscovery
Change-Id: Ie9cff7937412c62c8a5a3b75b87a43952017f146
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 32e35b0..4fca42f 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
@@ -43,6 +43,7 @@
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.DeviceEvent;
import org.onosproject.net.device.DeviceListener;
import org.onosproject.net.device.DeviceProvider;
@@ -331,10 +332,17 @@
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);
}
@@ -343,7 +351,7 @@
/**
* Return the DeviceId about the device containing the URI.
*
- * @param ip IP address
+ * @param ip IP address
* @param port port number
* @return DeviceId
*/
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;
diff --git a/providers/snmp/device/src/main/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProvider.java b/providers/snmp/device/src/main/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProvider.java
index 01fb738..280d3ff 100644
--- a/providers/snmp/device/src/main/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProvider.java
+++ b/providers/snmp/device/src/main/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProvider.java
@@ -287,9 +287,13 @@
if (d.is(DeviceDescriptionDiscovery.class)) {
DeviceDescriptionDiscovery descriptionDiscovery = d.as(DeviceDescriptionDiscovery.class);
DeviceDescription description = descriptionDiscovery.discoverDeviceDetails();
- deviceStore.createOrUpdateDevice(
- new ProviderId("snmp", "org.onosproject.provider.device"),
- did, description);
+ if (description != null) {
+ deviceStore.createOrUpdateDevice(
+ new ProviderId("snmp", "org.onosproject.provider.device"),
+ did, description);
+ } else {
+ log.info("No other description given for device {}", d.id());
+ }
providerService.updatePorts(did, descriptionDiscovery.discoverPortDetails());
} else {
log.warn("No populate description and ports behaviour for device {}", did);