Allow reading PortDescription from DeviceStore
DeviceManager had to reverse-engineer PortDescription
in order to mark port off-line, etc.
which required domain specific knowledge.
(e.g., OpticalPortOperatorr#descriptionOf)
required work for ONOS-4691
Change-Id: I954f5f2db2cb7db938f498ead4c8e3f84212a53f
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
index f3bc222..cfc9626 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
@@ -24,6 +24,7 @@
import java.util.Collection;
import java.util.List;
+import java.util.stream.Stream;
/**
* Manages inventory of infrastructure devices; not intended for direct use.
@@ -115,6 +116,15 @@
List<Port> getPorts(DeviceId deviceId);
/**
+ * Returns the stream of port descriptions that belong to the specified device.
+ *
+ * @param providerId provider identifier
+ * @param deviceId device identifier
+ * @return stream of device portdescriptions
+ */
+ Stream<PortDescription> getPortDescriptions(ProviderId providerId, DeviceId deviceId);
+
+ /**
* Updates the port statistics of the specified device using the give port
* statistics.
*
@@ -152,6 +162,16 @@
Port getPort(DeviceId deviceId, PortNumber portNumber);
/**
+ * Returns the specified device port description.
+ *
+ * @param providerId provider identifier
+ * @param deviceId device identifier
+ * @param portNumber port number
+ * @return device port description
+ */
+ PortDescription getPortDescription(ProviderId providerId, DeviceId deviceId, PortNumber portNumber);
+
+ /**
* Indicates whether the specified device is available/online.
*
* @param deviceId device identifier
diff --git a/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java b/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java
index 9208ee0..d13da6a 100644
--- a/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java
+++ b/core/api/src/test/java/org/onosproject/net/device/DeviceStoreAdapter.java
@@ -24,6 +24,7 @@
import java.util.Collection;
import java.util.List;
+import java.util.stream.Stream;
/**
* Test adapter for the DeviceStore API.
@@ -78,6 +79,12 @@
}
@Override
+ public Stream<PortDescription> getPortDescriptions(ProviderId providerId,
+ DeviceId deviceId) {
+ return Stream.empty();
+ }
+
+ @Override
public DeviceEvent updatePortStatistics(ProviderId providerId, DeviceId deviceId,
Collection<PortStatistics> portStats) {
return null;
@@ -99,6 +106,13 @@
}
@Override
+ public PortDescription getPortDescription(ProviderId providerId,
+ DeviceId deviceId,
+ PortNumber portNumber) {
+ return null;
+ }
+
+ @Override
public boolean isAvailable(DeviceId deviceId) {
return false;
}