X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Fprovisiondevice%2FDeviceRendererServiceImpl.java;h=6a310929e8ee0ae5ca979f2aa447fe905d2ea17e;hb=0f9a451081238311c3f1f30e97aa22dcc5998a8a;hp=40a2a20ff4f0da824881deba319b706f4492b9d9;hpb=20b2ae818f0b19079c176fffa65a8e96af435375;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java index 40a2a20ff..6a310929e 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java @@ -98,12 +98,6 @@ public class DeviceRendererServiceImpl implements DeviceRendererService { @Override public ServicePathOutput setupServicePath(ServicePathInput input, ServicePathDirection direction) { List nodes = input.getNodes(); - Nodes srcNode = nodes.get(0); - // If the Node list size is one, then src and tgt are same; - // sapi/dapi all have the same value - Nodes tgtNode = nodes.get(nodes.size() - 1); - - // Register node for suppressing alarms if (!alarmSuppressionNodeRegistration(input)) { LOG.warn("Alarm suppresion node registration failed!!!!"); @@ -115,8 +109,11 @@ public class DeviceRendererServiceImpl implements DeviceRendererService { ServiceListTopology topology = new ServiceListTopology(); AtomicBoolean success = new AtomicBoolean(true); ForkJoinPool forkJoinPool = new ForkJoinPool(); + ForkJoinTask forkJoinTask = forkJoinPool.submit(() -> nodes.parallelStream().forEach(node -> { String nodeId = node.getNodeId(); + // take the index of the node + int nodeIndex = nodes.indexOf(node); LOG.info("Starting provisioning for node : {}", nodeId); List createdEthInterfaces = new ArrayList<>(); List createdOtuInterfaces = new ArrayList<>(); @@ -136,15 +133,17 @@ public class DeviceRendererServiceImpl implements DeviceRendererService { nodeId, destTp, waveNumber, ModulationFormat.DpQpsk); createdOchInterfaces.add(supportingOchInterface); // Here we pass logical connection-point of z-end to set SAPI and DAPI - String znodeId = tgtNode.getNodeId(); - String zlogicalConnection = tgtNode.getDestTp(); - if (nodeId.equals(tgtNode.getNodeId())) { - znodeId = srcNode.getNodeId(); // if it is final node, then set zSide as source side - zlogicalConnection = srcNode.getDestTp(); + Nodes tgtNode = null; + if (nodeIndex + 1 == nodes.size()) { + // For the end node, tgtNode becomes the first node in the list + tgtNode = nodes.get(0); + } else { + tgtNode = nodes.get(nodeIndex + 1); } + // tgtNode srcTp is null in this if cond String supportingOtuInterface = this.openRoadmInterfaceFactory .createOpenRoadmOtu4Interface(nodeId, destTp, supportingOchInterface, - znodeId, zlogicalConnection); + tgtNode.getNodeId(), tgtNode.getDestTp()); createdOtuInterfaces.add(supportingOtuInterface); if (srcTp == null) { otnNodesProvisioned.add(node);