Deprecating PortDiscovery in favour of DeviceDescritpionDiscovery
Change-Id: Ie9cff7937412c62c8a5a3b75b87a43952017f146
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/PortDiscovery.java b/core/api/src/main/java/org/onosproject/net/behaviour/PortDiscovery.java
index 7847cd5..6e22e7f 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/PortDiscovery.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/PortDiscovery.java
@@ -26,12 +26,18 @@
/**
* Discovers the set of ports from a device through a device specific protocol.
* The returned ports are not retrieved from the information stored in ONOS.
+ *
+ * @deprecated 1.6.0 Goldeneye. Use DeviceDescriptionDiscovery instead
*/
+@Deprecated
public interface PortDiscovery extends HandlerBehaviour {
/**
* Retrieves the set of ports from a device.
+ *
* @return a set of port descriptions.
+ * @deprecated 1.6.0 Goldeneye. Use DeviceDescriptionDiscovery instead
*/
+ @Deprecated
List<PortDescription> getPorts();
}
\ No newline at end of file
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java b/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
index 4bc624b..f7649b0 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
@@ -28,7 +28,7 @@
public interface DeviceDescriptionDiscovery extends HandlerBehaviour {
/**
- * Returns device description appropriately annotated to support
+ * Returns a device description appropriately annotated to support
* downstream model extension via projections of the resulting device,
* as in the following example.
* <pre>
@@ -40,7 +40,7 @@
DeviceDescription discoverDeviceDetails();
/**
- * Returns list of port descriptions appropriately annotated to support
+ * Returns a list of port descriptions appropriately annotated to support
* downstream model extension via projections of their parent device,
* as in the following example.
* <pre>
diff --git a/core/common/src/main/java/org/onosproject/common/net/AbstractDeviceProvider.java b/core/common/src/main/java/org/onosproject/common/net/AbstractDeviceProvider.java
index 9d7e35a..8560625 100644
--- a/core/common/src/main/java/org/onosproject/common/net/AbstractDeviceProvider.java
+++ b/core/common/src/main/java/org/onosproject/common/net/AbstractDeviceProvider.java
@@ -22,6 +22,7 @@
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.device.DeviceDescription;
import org.onosproject.net.device.DeviceDescriptionDiscovery;
import org.onosproject.net.device.DeviceProvider;
import org.onosproject.net.device.DeviceProviderRegistry;
@@ -93,10 +94,15 @@
protected void discoverDevice(DriverHandler handler) {
DeviceId deviceId = handler.data().deviceId();
DeviceDescriptionDiscovery discovery = handler.behaviour(DeviceDescriptionDiscovery.class);
- providerService.deviceConnected(deviceId, discovery.discoverDeviceDetails());
+ DeviceDescription description = discovery.discoverDeviceDetails();
+ if (description != null) {
+ providerService.deviceConnected(deviceId, description);
+ } else {
+ log.info("No other description given for device {}", deviceId);
+ }
providerService.updatePorts(deviceId, discovery.discoverPortDetails());
- }
+ }
// TODO: inspect NETCONF, SNMP, RESTSB device providers for additional common patterns
// TODO: provide base for port status update
// TODO: integrate with network config for learning about management addresses to probe