X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Fprovisiondevice%2FOtnDeviceRendererServiceImpl.java;h=ec8ff8a827fe3425cd9d9540e4e642db55d6662b;hb=0d1c0746ea2b384ce5e7dc9309fdb9eef04567ce;hp=3e56dd386cb5be536ffa2d9dfd3fd37ef5f9f8f0;hpb=31bc01d3dab733bbb6ad48cc43586de43cb6c5c9;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java index 3e56dd386..ec8ff8a82 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java @@ -8,8 +8,10 @@ package org.opendaylight.transportpce.renderer.provisiondevice; import java.util.ArrayList; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.CopyOnWriteArrayList; @@ -24,15 +26,15 @@ import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfa import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces; import org.opendaylight.transportpce.networkmodel.service.NetworkModelService; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.device.rev200128.OtnServicePathInput; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.device.rev200128.OtnServicePathOutput; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.device.rev200128.OtnServicePathOutputBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathInput; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutput; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutputBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.Interface; -import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.node.interfaces.NodeInterface; -import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.node.interfaces.NodeInterfaceBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.node.interfaces.NodeInterfaceKey; -import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.otn.renderer.input.Nodes; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterface; +import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterfaceBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterfaceKey; +import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.otn.renderer.input.Nodes; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,7 +62,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { @Override public OtnServicePathOutput setupOtnServicePath(OtnServicePathInput input) { - LOG.info("Calling setup service path"); + LOG.info("Calling setup otn-service path"); boolean success = true; List nodeInterfaces = new ArrayList<>(); List results = new ArrayList<>(); @@ -105,7 +107,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { success = false; } } else { - LOG.warn("Unsupported serivce-rate for service-type Ethernet"); + LOG.warn("Unsupported service-rate for service-type Ethernet"); } break; case "ODU": @@ -118,11 +120,11 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { success = false; } } else { - LOG.warn("Unsupported serivce-rate for service-type ODU"); + LOG.warn("Unsupported service-rate for service-type ODU"); } break; default: - LOG.error("service-type {} not managet yet", input.getServiceType()); + LOG.error("service-type {} not managed yet", input.getServiceType()); break; } if (success) { @@ -131,14 +133,25 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { results.add("Otn Service path was set up successfully for node :" + nodeInterface.getNodeId()); } } + Map nodeInterfacesMap = new HashMap<>(); + for (NodeInterface nodeInterface : nodeInterfaces) { + if (nodeInterface != null) { + nodeInterfacesMap.put(nodeInterface.key(), nodeInterface); + } + } OtnServicePathOutputBuilder otnServicePathOutputBuilder = new OtnServicePathOutputBuilder() .setSuccess(success) - .setNodeInterface(nodeInterfaces) + .setNodeInterface(nodeInterfacesMap) .setResult(String.join("\n", results)); return otnServicePathOutputBuilder.build(); } public OtnServicePathOutput deleteOtnServicePath(OtnServicePathInput input) { + if (input == null) { + LOG.error("Unable to delete otn service path. input = null"); + return new OtnServicePathOutputBuilder().setResult("Unable to delete otn service path. input = null") + .setSuccess(false).build(); + } List nodes = input.getNodes(); AtomicBoolean success = new AtomicBoolean(true); ConcurrentLinkedQueue results = new ConcurrentLinkedQueue<>(); @@ -363,11 +376,24 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { private void createODU4TtpInterface(OtnServicePathInput input, List nodeInterfaces, CopyOnWriteArrayList otnNodesProvisioned) throws OpenRoadmInterfaceException { - for (Nodes node : input.getNodes()) { + if (input.getNodes() == null) { + return; + } + LOG.info("Creation of ODU4 tp interface {}", input); + for (int i = 0; i < input.getNodes().size(); i++) { + Nodes node = input.getNodes().get(i); String supportingOtuInterface = node.getNetworkTp() + "-OTU"; List createdOdu4Interfaces = new ArrayList<>(); + // Adding SAPI/DAPI information to the + Nodes tgtNode = null; + if (i + 1 == input.getNodes().size()) { + // For the end node, tgtNode becomes the first node in the list + tgtNode = input.getNodes().get(0); + } else { + tgtNode = input.getNodes().get(i + 1); + } createdOdu4Interfaces.add(openRoadmInterfaceFactory.createOpenRoadmOtnOdu4Interface(node.getNodeId(), - node.getNetworkTp(), supportingOtuInterface)); + node.getNetworkTp(), supportingOtuInterface, tgtNode.getNodeId(), tgtNode.getNetworkTp())); NodeInterfaceBuilder nodeInterfaceBuilder = new NodeInterfaceBuilder() .withKey(new NodeInterfaceKey(node.getNodeId())) .setNodeId(node.getNodeId())