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/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java b/core/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java
index 4b23e21..31b4292 100644
--- a/core/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java
+++ b/core/common/src/test/java/org/onosproject/store/trivial/SimpleDeviceStore.java
@@ -59,11 +59,13 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Stream;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -416,6 +418,15 @@
}
@Override
+ public Stream<PortDescription> getPortDescriptions(ProviderId providerId,
+ DeviceId deviceId) {
+ return Optional.ofNullable(deviceDescs.get(deviceId))
+ .map(m -> m.get(providerId))
+ .map(descs -> descs.portDescs.values().stream())
+ .orElse(Stream.empty());
+ }
+
+ @Override
public DeviceEvent updatePortStatistics(ProviderId providerId, DeviceId deviceId,
Collection<PortStatistics> newStatsCollection) {
@@ -480,6 +491,16 @@
}
@Override
+ public PortDescription getPortDescription(ProviderId providerId,
+ DeviceId deviceId,
+ PortNumber portNumber) {
+ return Optional.ofNullable(deviceDescs.get(deviceId))
+ .map(m -> m.get(providerId))
+ .map(descs -> descs.getPortDesc(portNumber))
+ .orElse(null);
+ }
+
+ @Override
public List<PortStatistics> getPortStatistics(DeviceId deviceId) {
Map<PortNumber, PortStatistics> portStats = devicePortStats.get(deviceId);
if (portStats == null) {