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=c1cb74097e2af0fde40658c0f5e1a57b98fb0aef;hb=refs%2Fchanges%2F46%2F100646%2F27;hp=9862ec9ad978533bf1ae55a9cc24e9323387acd0;hpb=9e620f8a99f2efc391b580fec98202a812f43ed6;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 9862ec9ad..c1cb74097 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 @@ -13,6 +13,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -29,24 +30,23 @@ 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.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.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.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.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.OrgOpenroadmDeviceData; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.Port; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.Ports; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.PortsKey; @@ -66,12 +66,17 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.open import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.connection.map.Destination; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.EthernetCsmacd; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.InterfaceType; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpenROADMOpticalMultiplex; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalTransport; +import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOdu; +import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOtu; import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.Protocols1; import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.Lldp; import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.lldp.PortConfig; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev170929.SupportedIfCapability; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; @@ -89,7 +94,6 @@ public class PortMappingVersion121 { private final DataBroker dataBroker; private final DeviceTransactionManager deviceTransactionManager; - private final OpenRoadmInterfaces openRoadmInterfaces; static { SUFFIX = Map.of( @@ -98,17 +102,16 @@ public class PortMappingVersion121 { Direction.Bidirectional, "TXRX"); } - public PortMappingVersion121(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager, - OpenRoadmInterfaces openRoadmInterfaces) { + public PortMappingVersion121(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager) { this.dataBroker = dataBroker; this.deviceTransactionManager = deviceTransactionManager; - this.openRoadmInterfaces = openRoadmInterfaces; } public boolean createMappingData(String nodeId) { LOG.info(PortMappingUtils.CREATE_MAPPING_DATA_LOGMSG, nodeId, "1.2.1"); List portMapList = new ArrayList<>(); - InstanceIdentifier infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class); + InstanceIdentifier infoIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class).child(Info.class).build(); Optional deviceInfoOptional = this.deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType .OPERATIONAL, infoIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); if (deviceInfoOptional.isEmpty()) { @@ -163,9 +166,11 @@ public class PortMappingVersion121 { LOG.error(PortMappingUtils.UNABLE_MAPPING_LOGMSG, nodeId, PortMappingUtils.UPDATE, "a null value"); return false; } - InstanceIdentifier portId = InstanceIdentifier.create(OrgOpenroadmDevice.class) + InstanceIdentifier portId = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) .child(CircuitPacks.class, new CircuitPacksKey(oldMapping.getSupportingCircuitPackName())) - .child(Ports.class, new PortsKey(oldMapping.getSupportingPort())); + .child(Ports.class, new PortsKey(oldMapping.getSupportingPort())) + .build(); try { Ports port = deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, portId, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT).get(); @@ -189,7 +194,8 @@ public class PortMappingVersion121 { private boolean createXpdrPortMapping(String nodeId, List portMapList) { // Creating for Xponder Line and Client Ports - InstanceIdentifier deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class); + InstanceIdentifier deviceIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class).build(); Optional deviceObject = deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, deviceIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -277,8 +283,10 @@ public class PortMappingVersion121 { List srgCps = new ArrayList<>(); LOG.debug(PortMappingUtils.GETTING_CP_LOGMSG, deviceId, srgCounter); - InstanceIdentifier srgIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(SharedRiskGroup.class, new SharedRiskGroupKey(Uint16.valueOf(srgCounter))); + InstanceIdentifier srgIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(SharedRiskGroup.class, new SharedRiskGroupKey(Uint16.valueOf(srgCounter))) + .build(); Optional ordmSrgObject = this.deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.OPERATIONAL, srgIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -296,12 +304,12 @@ public class PortMappingVersion121 { for (Entry> srgCpEntry : getSrgCps(nodeId, deviceInfo).entrySet()) { List keys = new ArrayList<>(); + int portIndex = 1; for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks cp : srgCpEntry.getValue()) { String circuitPackName = cp.getCircuitPackName(); List portList = getPortList(circuitPackName, nodeId); Collections.sort(portList, new SortPort121ByName()); - int portIndex = 1; for (Ports port : portList) { if (!checkPortQual(port, circuitPackName, nodeId)) { continue; @@ -356,9 +364,11 @@ public class PortMappingVersion121 { nodeId, port.getPortName(), circuitPackName); return null; } - InstanceIdentifier port2ID = InstanceIdentifier.create(OrgOpenroadmDevice.class) + InstanceIdentifier port2ID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) .child(CircuitPacks.class, new CircuitPacksKey(port.getPartnerPort().getCircuitPackName())) - .child(Ports.class, new PortsKey(port.getPartnerPort().getPortName())); + .child(Ports.class, new PortsKey(port.getPartnerPort().getPortName())) + .build(); Optional port2Object = this.deviceTransactionManager .getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, port2ID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -374,17 +384,18 @@ public class PortMappingVersion121 { LOG.error(PortMappingUtils.NOT_CORRECT_PARTNERPORT_LOGMSG + PortMappingUtils.PARTNERPORT_CONF_ERROR_LOGMSG, nodeId, port2.getPortName(), port.getPartnerPort().getCircuitPackName(), port.getPortName(), circuitPackName); - //portIndex++; - //TODO check if we really needed to increase portIndex - // if yes this block should not be in getPartnerPort + //TODO check if we really needed to increment portIndex in this condition + // if yes this block should not be in getPartnerPort and must move back to createPpPortMapping return null; } return port2; } private List getPortList(String circuitPackName, String nodeId) { - InstanceIdentifier cpIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)); + InstanceIdentifier cpIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)) + .build(); Optional circuitPackObject = this.deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, cpIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -409,6 +420,9 @@ public class PortMappingVersion121 { return null; } + @edu.umd.cs.findbugs.annotations.SuppressFBWarnings( + value = "SLF4J_UNKNOWN_ARRAY", + justification = "False positive") private Map getDegreesMap(String deviceId, Info ordmInfo) { Map degrees = new HashMap<>(); @@ -418,8 +432,10 @@ public class PortMappingVersion121 { for (int degreeCounter = 1; degreeCounter <= maxDegree; degreeCounter++) { LOG.debug(PortMappingUtils.GETTING_CONPORT_LOGMSG, deviceId, degreeCounter); - InstanceIdentifier deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(Degree.class, new DegreeKey(Uint16.valueOf(degreeCounter))); + InstanceIdentifier deviceIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Degree.class, new DegreeKey(Uint16.valueOf(degreeCounter))) + .build(); Optional ordmDegreeObject = this.deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.OPERATIONAL, deviceIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -441,8 +457,10 @@ public class PortMappingVersion121 { private Map getEthInterfaceList(String nodeId) { LOG.info(PortMappingUtils.GETTING_ETH_LIST_LOGMSG, nodeId); - InstanceIdentifier protocoliid = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(Protocols.class); + InstanceIdentifier protocoliid = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Protocols.class) + .build(); Optional protocolObject = this.deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, protocoliid, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -456,8 +474,10 @@ public class PortMappingVersion121 { if (!portConfig.getAdminStatus().equals(PortConfig.AdminStatus.Txandrx)) { continue; } - InstanceIdentifier interfaceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(Interface.class, new InterfaceKey(portConfig.getIfName())); + InstanceIdentifier interfaceIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Interface.class, new InterfaceKey(portConfig.getIfName())) + .build(); Optional interfaceObject = this.deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, interfaceIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -467,8 +487,9 @@ public class PortMappingVersion121 { String supportingCircuitPackName = interfaceObject.get().getSupportingCircuitPackName(); cpToInterfaceMap.put(supportingCircuitPackName, portConfig.getIfName()); InstanceIdentifier circuitPacksIID = InstanceIdentifier - .create(OrgOpenroadmDevice.class) - .child(CircuitPacks.class, new CircuitPacksKey(supportingCircuitPackName)); + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(CircuitPacks.class, new CircuitPacksKey(supportingCircuitPackName)) + .build(); Optional circuitPackObject = this.deviceTransactionManager.getDataFromDevice( nodeId, LogicalDatastoreType.OPERATIONAL, circuitPacksIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -568,9 +589,7 @@ public class PortMappingVersion121 { 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 @@ -591,28 +610,34 @@ public class PortMappingVersion121 { } private MappingBuilder updateMappingInterfaces(String nodeId, MappingBuilder mpBldr, Ports port) { + mpBldr.setSupportingOtu4(null) + .setSupportingOdu4(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()); - } - } catch (OpenRoadmInterfaceException ex) { - LOG.warn(PortMappingUtils.INTF_ISSUE_LOGMSG, nodeId, interfaces.getInterfaceName(), ex); + Optional openRoadmInterface = getInterfaceFromDevice(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()); + } + if (interfaceType.equals(OtnOtu.class)) { + mpBldr.setSupportingOtu4(interfaces.getInterfaceName()); + } + if (interfaceType.equals(OtnOdu.class)) { + mpBldr.setSupportingOdu4(interfaces.getInterfaceName()); + } + if (interfaceType.equals(EthernetCsmacd.class)) { + mpBldr.setSupportingEthernet(interfaces.getInterfaceName()); } } return mpBldr; @@ -630,13 +655,22 @@ public class PortMappingVersion121 { private Mapping createNewXpdrMapping(String nodeId, Ports port, String circuitPackName, String logicalConnectionPoint, String partnerLcp) { + Set> supportedIntf = new HashSet<>(); + for (String sup: getSupIfCapList(port)) { + if (MappingUtilsImpl.convertSupIfCapa(sup) != null) { + supportedIntf.add(MappingUtilsImpl.convertSupIfCapa(sup)); + } + } MappingBuilder mpBldr = new MappingBuilder() .withKey(new MappingKey(logicalConnectionPoint)) .setLogicalConnectionPoint(logicalConnectionPoint) .setSupportingCircuitPackName(circuitPackName) .setSupportingPort(port.getPortName()) .setPortDirection(port.getPortDirection().getName()) - .setLcpHashVal(PortMappingUtils.fnv1size64(nodeId + "-" + logicalConnectionPoint)); + .setXponderType(XpdrNodeTypes.Tpdr) + .setLcpHashVal(PortMappingUtils.fnv1size64(nodeId + "-" + logicalConnectionPoint)) + .setSupportedInterfaceCapability(supportedIntf); if (port.getPortQual() != null) { mpBldr.setPortQual(port.getPortQual().getName()); } @@ -652,6 +686,16 @@ public class PortMappingVersion121 { return mpBldr.build(); } + private List getSupIfCapList(Ports port) { + Set> supIfCapClassList = port.getSupportedInterfaceCapability(); + return + supIfCapClassList == null + ? Collections.emptyList() + : supIfCapClassList + .stream().map(e -> e.getSimpleName()) + .collect(Collectors.toList()); + } + private Ports getPort2(Ports port, String nodeId, String circuitPackName, StringBuilder circuitPackName2, //circuitPackName2 will be updated by reference contrary to circuitPackName List circuitPackList, Map lcpMap) { @@ -854,9 +898,11 @@ public class PortMappingVersion121 { } private Ports getTtpPort(ConnectionPorts cp, String cpName, String nodeId) { - InstanceIdentifier portID = InstanceIdentifier.create(OrgOpenroadmDevice.class) + InstanceIdentifier portID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) .child(CircuitPacks.class, new CircuitPacksKey(cpName)) - .child(Ports.class, new PortsKey(cp.getPortName())); + .child(Ports.class, new PortsKey(cp.getPortName())) + .build(); LOG.debug(PortMappingUtils.FETCH_CONNECTIONPORT_LOGMSG, nodeId, cp.getPortName(), cpName); Optional portObject = this.deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, portID, Timeouts.DEVICE_READ_TIMEOUT, @@ -949,4 +995,12 @@ public class PortMappingVersion121 { return nodeInfoBldr.build(); } + private Optional getInterfaceFromDevice(String nodeId, String interfaceName) { + InstanceIdentifier interfacesIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Interface.class, new InterfaceKey(interfaceName)) + .build(); + return deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.CONFIGURATION, + interfacesIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); + } }