X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FPortMappingVersion121.java;h=c3e5a744a5c17632e9e5b341f6b58e4946868a85;hb=15197bf3dcde69a90f01963ffa524fbf6354555c;hp=00b4ec1cdc54e320837ff5e38a875771fe2b0381;hpb=9d49e1da85f9e18f8682f6ebdb502390b3a81d3e;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 00b4ec1cd..c3e5a744a 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 @@ -32,20 +32,20 @@ import org.opendaylight.transportpce.common.Timeouts; import org.opendaylight.transportpce.common.device.DeviceTransactionManager; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.Network; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.NetworkBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.NodesBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.NodesKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.CpToDegree; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.CpToDegreeBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.CpToDegreeKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo.OpenroadmVersion; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.Network; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.NetworkBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.NodesBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.NodesKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.CpToDegree; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.CpToDegreeBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.CpToDegreeKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.MappingBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.MappingKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.NodeInfo; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.NodeInfo.OpenroadmVersion; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210310.network.nodes.NodeInfoBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.Direction; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.CircuitPack; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.Port; @@ -81,6 +81,7 @@ import org.slf4j.LoggerFactory; // FIXME: many common pieces of code between PortMapping Versions 121 and 221 and 710 // some mutualization would be helpful +@SuppressWarnings("CPD-START") public class PortMappingVersion121 { private static final Logger LOG = LoggerFactory.getLogger(PortMappingVersion121.class); @@ -222,59 +223,11 @@ public class PortMappingVersion121 { List portList = new ArrayList<>(cp.nonnullPorts().values()); portList.sort(Comparator.comparing(Ports::getPortName)); for (Ports port : portList) { - if (port.getPortQual() == null) { - LOG.warn("{} : port {} on {} - PortQual was not found", - nodeId, port.getPortName(), circuitPackName); - continue; - } - - switch (port.getPortQual()) { - - case XpdrClient: - String lcp0 = createXpdrLogicalConnectionPort(1, client, StringConstants.CLIENT_TOKEN); - lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp0); - mappingMap.put(lcp0, - createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null)); - client++; - //continue; - break; - - case XpdrNetwork: - switch (port.getPortDirection()) { - - case Bidirectional: - String lcp = createXpdrLogicalConnectionPort(1, line, StringConstants.NETWORK_TOKEN); - lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp); - mappingMap.put(lcp, - createXpdrMappingObject(nodeId, port, circuitPackName, lcp, null, null, null)); - line++; - break; - - case Rx: - case Tx: - 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, circuitPackName2.toString(), port, port2, - lcpMap, mappingMap); - line += 2; - break; - - default: - LOG.error("{} : port {} on {} - unsupported Direction {}", - nodeId, port.getPortName(), circuitPackName, port.getPortDirection()); - } - break; - - default: - LOG.error("{} : port {} on {} - unsupported PortQual {}", - nodeId, port.getPortName(), circuitPackName, port.getPortQual()); - } + int[] counters = fillXpdrLcpsMaps(line, client, nodeId, + 1, circuitPackName, port, + circuitPackList, lcpMap, mappingMap); + line = counters[0]; + client = counters[1]; } } @@ -630,7 +583,12 @@ public class PortMappingVersion121 { .setSupportingCircuitPackName(circuitPackName) .setSupportingPort(port.getPortName()) .setPortDirection(port.getPortDirection().getName()); - + if (port.getAdministrativeState() != null) { + mpBldr.setPortAdminState(port.getAdministrativeState().name()); + } + if (port.getOperationalState() != null) { + mpBldr.setPortOperState(port.getOperationalState().name()); + } if (!logicalConnectionPoint.contains(StringConstants.TTP_TOKEN) || (port.getInterfaces() == null)) { return mpBldr.build(); } @@ -686,7 +644,12 @@ public class PortMappingVersion121 { if (partnerLcp != null) { mpBldr.setPartnerLcp(partnerLcp); } - + if (port.getAdministrativeState() != null) { + mpBldr.setPortAdminState(port.getAdministrativeState().name()); + } + if (port.getOperationalState() != null) { + mpBldr.setPortOperState(port.getOperationalState().name()); + } return mpBldr.build(); } @@ -746,6 +709,81 @@ public class PortMappingVersion121 { return; } + private int[] fillXpdrLcpsMaps(int line, int client, String nodeId, + Integer xponderNb, + String circuitPackName, Ports port, + List circuitPackList, Map lcpMap, Map mappingMap) { + + if (port.getPortQual() == null) { + LOG.warn("{} : port {} on {} - PortQual was not found", + nodeId, port.getPortName(), circuitPackName); + return new int[] {line, client}; + } + + switch (port.getPortQual()) { + + case XpdrClient: + String lcp0 = createXpdrLogicalConnectionPort(xponderNb, client, StringConstants.CLIENT_TOKEN); + lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp0); + mappingMap.put(lcp0, + createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null)); + client++; + break; + + case XpdrNetwork: + line = fillXpdrNetworkLcpsMaps(line, nodeId, + xponderNb, + circuitPackName, port, + circuitPackList, lcpMap, mappingMap); + break; + + default: + LOG.error("{} : port {} on {} - unsupported PortQual {}", + nodeId, port.getPortName(), circuitPackName, port.getPortQual()); + } + return new int[] {line, client}; + } + + private int fillXpdrNetworkLcpsMaps(int line, String nodeId, + Integer xponderNb, + String circuitPackName, Ports port, + List circuitPackList, Map lcpMap, Map mappingMap) { + + switch (port.getPortDirection()) { + + case Bidirectional: + String lcp = createXpdrLogicalConnectionPort(xponderNb, line, StringConstants.NETWORK_TOKEN); + lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp); + mappingMap.put(lcp, + createXpdrMappingObject(nodeId, port, circuitPackName, lcp, null, null, null)); + line++; + break; + + case Rx: + case Tx: + 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 + return line; + } + + putXpdrLcpsInMaps(line, nodeId, xponderNb, + circuitPackName, circuitPackName2.toString(), port, port2, + lcpMap, mappingMap); + + line += 2; + break; + + default: + LOG.error("{} : port {} on {} - unsupported Direction {}", + nodeId, port.getPortName(), circuitPackName, port.getPortDirection()); + } + + return line; + } private boolean createTtpPortMapping(String nodeId, Info deviceInfo, List portMapList) { // Creating mapping data for degree TTP's