+ private List<String> getSupportedStream(String nodeId) {
+ InstanceIdentifier<Streams> streamsIID = InstanceIdentifier.create(Netconf.class).child(Streams.class);
+ Optional<Streams> ordmInfoObject =
+ deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, streamsIID,
+ Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
+ if (ordmInfoObject == null || ordmInfoObject.isEmpty() || ordmInfoObject.orElseThrow().getStream().isEmpty()) {
+ LOG.error("List of streams supports by device is not present");
+ return List.of("OPENROADM","NETCONF");
+ }
+ List<String> streams = new ArrayList<>();
+ List<String> netconfStreams = new ArrayList<>();
+ for (Stream strm : ordmInfoObject.orElseThrow().getStream().values()) {
+ LOG.debug("Streams are {}", strm);
+ if ("OPENROADM".equalsIgnoreCase(strm.getName().getValue())) {
+ streams.add(strm.getName().getValue());
+ } else if ("NETCONF".equalsIgnoreCase(strm.getName().getValue())) {
+ netconfStreams.add(strm.getName().getValue());
+ }
+ }
+ // If OpenROADM streams are not supported, try NETCONF streams subscription
+ streams.addAll(netconfStreams);
+ return
+ streams.isEmpty()
+ ? List.of("OPENROADM","NETCONF")
+ : streams;
+ }
+