X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FPortMappingVersion710.java;h=207d0bad6c6a122aa8fa44090a31b9e1f8476ca8;hb=268165cb2822b6ce4c55f00cac63eed2bb222ec7;hp=cfed29e9ce41ca0d6f5f87d9a2e4b9d6802a0d14;hpb=db5e3f9cce7e396793329010338ce650c7826a92;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java index cfed29e9c..207d0bad6 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion710.java @@ -31,32 +31,30 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.StringConstants; 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.rev210426.Network; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.NetworkBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.OpenroadmNodeVersion; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.cp.to.degree.CpToDegree; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.cp.to.degree.CpToDegreeBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.cp.to.degree.CpToDegreeKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mc.capabilities.McCapabilities; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mc.capabilities.McCapabilitiesBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mc.capabilities.McCapabilitiesKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mpdr.restrictions.grp.MpdrRestrictionsBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfo; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfoBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.switching.pool.lcp.SwitchingPoolLcp; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.switching.pool.lcp.SwitchingPoolLcpBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.switching.pool.lcp.SwitchingPoolLcpKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.switching.pool.lcp.switching.pool.lcp.NonBlockingList; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.switching.pool.lcp.switching.pool.lcp.NonBlockingListBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.switching.pool.lcp.switching.pool.lcp.NonBlockingListKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.Network; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.NetworkBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.OpenroadmNodeVersion; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.cp.to.degree.CpToDegree; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.cp.to.degree.CpToDegreeBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.cp.to.degree.CpToDegreeKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.MappingBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.MappingKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mc.capabilities.McCapabilities; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mc.capabilities.McCapabilitiesBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mc.capabilities.McCapabilitiesKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mpdr.restrictions.grp.MpdrRestrictionsBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.NodesBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.NodesKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.nodes.NodeInfo; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.nodes.NodeInfoBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.switching.pool.lcp.SwitchingPoolLcp; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.switching.pool.lcp.SwitchingPoolLcpBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.switching.pool.lcp.SwitchingPoolLcpKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.switching.pool.lcp.switching.pool.lcp.NonBlockingList; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.switching.pool.lcp.switching.pool.lcp.NonBlockingListBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.switching.pool.lcp.switching.pool.lcp.NonBlockingListKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.alarm.pm.types.rev191129.Direction; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.CircuitPack; @@ -92,6 +90,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.Inte import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.OpenROADMOpticalMultiplex; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.OpticalTransport; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.OtnOdu; +import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.OtnOtu; import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev200529.Protocols1; import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev200529.lldp.container.Lldp; import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev200529.lldp.container.lldp.PortConfig; @@ -117,7 +116,6 @@ public class PortMappingVersion710 { private final DataBroker dataBroker; private final DeviceTransactionManager deviceTransactionManager; - private final OpenRoadmInterfaces openRoadmInterfaces; static { SUFFIX = Map.of( @@ -126,11 +124,9 @@ public class PortMappingVersion710 { Direction.Bidirectional, "TXRX"); } - public PortMappingVersion710(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager, - OpenRoadmInterfaces openRoadmInterfaces) { + public PortMappingVersion710(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager) { this.dataBroker = dataBroker; this.deviceTransactionManager = deviceTransactionManager; - this.openRoadmInterfaces = openRoadmInterfaces; } public boolean createMappingData(String nodeId) { @@ -371,7 +367,7 @@ public class PortMappingVersion710 { portList.sort(Comparator.comparing(Ports::getPortName)); for (Ports port : portList) { int[] counters = fillXpdrLcpsMaps(line, client, nodeId, - 1, null, circuitPackName, port, + 1, XpdrNodeTypes.Tpdr, circuitPackName, port, circuitPackList, lcpMap, mappingMap); line = counters[0]; client = counters[1]; @@ -511,12 +507,12 @@ public class PortMappingVersion710 { for (Entry> srgCpEntry : getSrgCps(nodeId, deviceInfo).entrySet()) { List keys = new ArrayList<>(); + int portIndex = 1; for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.srg.CircuitPacks cp : srgCpEntry.getValue()) { String circuitPackName = cp.getCircuitPackName(); List portList = getPortList(circuitPackName, nodeId); Collections.sort(portList, new SortPort710ByName()); - int portIndex = 1; for (Ports port : portList) { if (!checkPortQual(port, circuitPackName, nodeId)) { continue; @@ -924,9 +920,7 @@ public class PortMappingVersion710 { private Mapping updateMappingObject(String nodeId, Ports port, Mapping oldmapping) { MappingBuilder mpBldr = new MappingBuilder(oldmapping); updateMappingStates(mpBldr, port, oldmapping); - if ((port.getInterfaces() == null) - || (!oldmapping.getLogicalConnectionPoint().contains(StringConstants.TTP_TOKEN) - && !oldmapping.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN))) { + if (port.getInterfaces() == null) { return mpBldr.build(); } // Get interfaces provisioned on the port @@ -947,41 +941,49 @@ public class PortMappingVersion710 { } private MappingBuilder updateMappingInterfaces(String nodeId, MappingBuilder mpBldr, Ports port) { + mpBldr.setSupportingOtu4(null) + .setSupportingOdu4(null) + .setSupportingOducn(null) + .setSupportingOtucn(null); for (Interfaces interfaces : port.getInterfaces()) { - try { - Optional openRoadmInterface = this.openRoadmInterfaces.getInterface(nodeId, - interfaces.getInterfaceName()); - if (openRoadmInterface.isEmpty()) { - LOG.warn(PortMappingUtils.INTF_ISSUE_LOGMSG, - nodeId, interfaces.getInterfaceName() + "- empty interface"); - continue; - } - LOG.debug(PortMappingUtils.GOT_INTF_LOGMSG, - nodeId, openRoadmInterface.get().getName(), openRoadmInterface.get().getType()); - Class interfaceType - = (Class) openRoadmInterface.get().getType(); - // Check if interface type is OMS or OTS - if (interfaceType.equals(OpenROADMOpticalMultiplex.class)) { - mpBldr.setSupportingOms(interfaces.getInterfaceName()); - } - if (interfaceType.equals(OpticalTransport.class)) { - mpBldr.setSupportingOts(interfaces.getInterfaceName()); - } - String interfaceName = interfaces.getInterfaceName(); - if (interfaceType.equals(OtnOdu.class) - && (interfaceName.substring(interfaceName.lastIndexOf("-") + 1) - .equals("ODU"))) { - mpBldr.setSupportingOdu4(interfaces.getInterfaceName()); - } - if ((interfaceType.equals(OtnOdu.class)) - && (interfaceName.substring(interfaceName.lastIndexOf("-") + 1) - .equals("ODUC4"))) { - mpBldr.setSupportingOduc4(interfaces.getInterfaceName()); - } - - } catch (OpenRoadmInterfaceException ex) { + Optional openRoadmInterface = getInterfaceFromDevice(nodeId, + interfaces.getInterfaceName()); + if (openRoadmInterface.isEmpty()) { LOG.warn(PortMappingUtils.INTF_ISSUE_LOGMSG, - nodeId, interfaces.getInterfaceName(), ex); + nodeId, interfaces.getInterfaceName() + "- empty interface"); + continue; + } + LOG.debug(PortMappingUtils.GOT_INTF_LOGMSG, + nodeId, openRoadmInterface.get().getName(), openRoadmInterface.get().getType()); + Class interfaceType + = (Class) openRoadmInterface.get().getType(); + // Check if interface type is OMS or OTS + if (interfaceType.equals(OpenROADMOpticalMultiplex.class)) { + mpBldr.setSupportingOms(interfaces.getInterfaceName()); + } + if (interfaceType.equals(OpticalTransport.class)) { + mpBldr.setSupportingOts(interfaces.getInterfaceName()); + } + String interfaceName = interfaces.getInterfaceName(); + if (interfaceType.equals(OtnOtu.class) + && (interfaceName.substring(interfaceName.lastIndexOf("-") + 1) + .equals("OTU4"))) { + mpBldr.setSupportingOtu4(interfaces.getInterfaceName()); + } + if ((interfaceType.equals(OtnOtu.class)) + && (interfaceName.substring(interfaceName.lastIndexOf("-") + 1) + .contains("OTUC"))) { + mpBldr.setSupportingOtucn(interfaces.getInterfaceName()); + } + if (interfaceType.equals(OtnOdu.class) + && (interfaceName.substring(interfaceName.lastIndexOf("-") + 1) + .equals("ODU4"))) { + mpBldr.setSupportingOdu4(interfaces.getInterfaceName()); + } + if ((interfaceType.equals(OtnOdu.class)) + && (interfaceName.substring(interfaceName.lastIndexOf("-") + 1) + .contains("ODUC"))) { + mpBldr.setSupportingOducn(interfaces.getInterfaceName()); } } return mpBldr; @@ -1019,11 +1021,11 @@ public class PortMappingVersion710 { } Collection supIntfCapaList = getSupIntfCapaList(port); if (supIntfCapaList != null) { - List> supportedIntf = new ArrayList<>(); SupportedInterfaceCapability sic1 = null; for (SupportedInterfaceCapability sic : supIntfCapaList) { - supportedIntf.add(sic.getIfCapType()); + supportedIntf.add(MappingUtilsImpl.convertSupIfCapa(sic.getIfCapType().getSimpleName())); sic1 = sic; } mpBldr.setSupportedInterfaceCapability(supportedIntf); @@ -1163,7 +1165,7 @@ public class PortMappingVersion710 { PortMappingUtils.createXpdrLogicalConnectionPort(xponderNb, client, StringConstants.CLIENT_TOKEN); lcpMap.put(circuitPackName + '+' + port.getPortName(), lcp0); mappingMap.put(lcp0, - createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null, null)); + createXpdrMappingObject(nodeId, port, circuitPackName, lcp0, null, null, null, xponderType)); client++; break; @@ -1416,4 +1418,10 @@ public class PortMappingVersion710 { return null; } + private Optional getInterfaceFromDevice(String nodeId, String interfaceName) { + InstanceIdentifier interfacesIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) + .child(Interface.class, new InterfaceKey(interfaceName)); + return deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.CONFIGURATION, + interfacesIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); + } }