X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FPortMappingVersion121.java;h=406fb8f32ddbbcaa858b5cc6891df4b08c60ba35;hb=refs%2Fchanges%2F67%2F94867%2F4;hp=20d46a281ca384d214e6ac4715e2b9a51982d31b;hpb=9338fc4be627ccfdab73602604a78812b748d88d;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java index 20d46a281..406fb8f32 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java @@ -247,43 +247,15 @@ public class PortMappingVersion121 { line++; continue; } - - if (!checkPartnerPortNotNull(port)) { - LOG.warn("Error in the configuration of port {} of {} for {}", - port.getPortName(), circuitPackName, nodeId); - continue; - } - - if (lcpMap.containsKey(circuitPackName + '+' + port.getPortName())) { - continue; - } - - Optional cpOpt = circuitPackList.stream() - .filter(cP -> cP.getCircuitPackName().equals(port.getPartnerPort().getCircuitPackName())) - .findFirst(); - if (!cpOpt.isPresent()) { - LOG.error("Error fetching circuit-pack {} for {}", - port.getPartnerPort().getCircuitPackName(), nodeId); - continue; - } - - Optional poOpt = cpOpt.get().nonnullPorts().values().stream() - .filter(p -> p.getPortName().equals(port.getPartnerPort().getPortName().toString())) - .findFirst(); - if (!poOpt.isPresent()) { - LOG.error("Error fetching port {} on {} for {}", port.getPartnerPort().getPortName(), - port.getPartnerPort().getCircuitPackName(), nodeId); - continue; - } - Ports port2 = poOpt.get(); - if (!checkPartnerPort(circuitPackName, port, port2)) { - LOG.error("port {} on {} is not a correct partner port of {} on {}", - port2.getPortName(), cpOpt.get().getCircuitPackName(), port.getPortName(), - circuitPackName); + StringBuilder circuitPackName2 = new StringBuilder(); + Ports port2 = getPort2(port, nodeId, circuitPackName, circuitPackName2, + circuitPackList, lcpMap); + if (port2 == null) { + //key already present or an error occured and was logged continue; } putXpdrLcpsInMaps(line, nodeId, 1, - circuitPackName, cpOpt.get().getCircuitPackName(), port, port2, + circuitPackName, circuitPackName2.toString(), port, port2, lcpMap, mappingMap); line += 2; break; @@ -707,6 +679,44 @@ public class PortMappingVersion121 { return mpBldr.build(); } + private Ports getPort2(Ports port, String nodeId, String circuitPackName, StringBuilder circuitPackName2, + //circuitPackName2 will be updated by reference contrary to circuitPackName + List circuitPackList, Map lcpMap) { + if (!checkPartnerPortNotNull(port)) { + LOG.warn("Error in the configuration of port {} of {} for {}", + port.getPortName(), circuitPackName, nodeId); + return null; + } + if (lcpMap.containsKey(circuitPackName + '+' + port.getPortName())) { + return null; + } + Optional cpOpt = circuitPackList.stream() + .filter(cP -> cP.getCircuitPackName().equals(port.getPartnerPort().getCircuitPackName())) + .findFirst(); + if (!cpOpt.isPresent()) { + LOG.error("Error fetching circuit-pack {} for {}", + port.getPartnerPort().getCircuitPackName(), nodeId); + return null; + } + Optional poOpt = cpOpt.get().nonnullPorts().values().stream() + .filter(p -> p.getPortName().equals(port.getPartnerPort().getPortName().toString())) + .findFirst(); + if (!poOpt.isPresent()) { + LOG.error("Error fetching port {} on {} for {}", port.getPartnerPort().getPortName(), + port.getPartnerPort().getCircuitPackName(), nodeId); + return null; + } + Ports port2 = poOpt.get(); + circuitPackName2.append(cpOpt.get().getCircuitPackName()); + if (!checkPartnerPort(circuitPackName, port, port2)) { + LOG.error("port {} on {} is not a correct partner port of {} on {}", + port2.getPortName(), circuitPackName2, port.getPortName(), + circuitPackName); + return null; + } + return port2; + } + private void putXpdrLcpsInMaps(int line, String nodeId, Integer xponderNb, String circuitPackName, String circuitPackName2, Ports port, Ports port2,