[VOL-4746] removing sub based on programmed data
Fix originally sent by Matteo Scandolo.
Change-Id: Ia62300f17af84d8cac98e3fc18a99eb697d4de15
Signed-off-by: Gustavo Silva <gsilva@furukawalatam.com>
diff --git a/impl/src/main/java/org/opencord/olt/impl/OltUtils.java b/impl/src/main/java/org/opencord/olt/impl/OltUtils.java
index 45d684e..339bfb1 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltUtils.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltUtils.java
@@ -19,10 +19,17 @@
import org.onlab.packet.VlanId;
import org.onosproject.net.AnnotationKeys;
import org.onosproject.net.Port;
+import org.opencord.olt.AccessDevicePort;
import org.opencord.olt.FlowOperation;
+import org.opencord.olt.OltFlowServiceInterface;
+import org.opencord.olt.ServiceKey;
import org.opencord.sadis.SubscriberAndDeviceInformation;
import org.opencord.sadis.UniTagInformation;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
/**
* Utility class for OLT app.
*/
@@ -83,4 +90,21 @@
}
return service;
}
+
+ public static SubscriberAndDeviceInformation getProgrammedSubscriber(
+ OltFlowServiceInterface service, AccessDevicePort accessDevicePort) {
+ List<Map.Entry<ServiceKey, UniTagInformation>> entries =
+ service.getProgrammedSubscribers().entrySet().stream()
+ .filter(entry -> entry.getKey().getPort().equals(accessDevicePort))
+ .collect(Collectors.toList());
+ if (!entries.isEmpty()) {
+ List<UniTagInformation> programmedList = entries.stream()
+ .map(entry -> entry.getKey().getService())
+ .collect(Collectors.toList());
+ SubscriberAndDeviceInformation si = new SubscriberAndDeviceInformation();
+ si.setUniTagList(programmedList);
+ return si;
+ }
+ return null;
+ }
}