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=e316532ad83187578c10d92d8f9d4e8c3e64ac29;hb=67763b4d82e44c68fdbc765cdeec5496ff65b01e;hp=164ba730c6d5ab5e4b4c78aae29897245cd72fe2;hpb=e29ab4154052f034f0df8680f073d24ec5521b24;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 164ba730c..e316532ad 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,29 +31,29 @@ 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.McCapabilities; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.McCapabilitiesBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.McCapabilitiesKey; -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.rev201012.network.nodes.SwitchingPoolLcp; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.SwitchingPoolLcpBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.SwitchingPoolLcpKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.switching.pool.lcp.NonBlockingList; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.switching.pool.lcp.NonBlockingListBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.switching.pool.lcp.NonBlockingListKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.Network; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.NetworkBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.OpenroadmNodeVersion; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegree; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegreeBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegreeKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mc.capabilities.McCapabilities; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mc.capabilities.McCapabilitiesBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mc.capabilities.McCapabilitiesKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.nodes.NodeInfo; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.nodes.NodeInfoBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.switching.pool.lcp.SwitchingPoolLcp; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.switching.pool.lcp.SwitchingPoolLcpBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.switching.pool.lcp.SwitchingPoolLcpKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.switching.pool.lcp.switching.pool.lcp.NonBlockingList; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.switching.pool.lcp.switching.pool.lcp.NonBlockingListBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.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; @@ -180,7 +180,7 @@ public class PortMappingVersion710 { } public boolean updateMapping(String nodeId, Mapping oldMapping) { - InstanceIdentifier portIId = InstanceIdentifier.create(OrgOpenroadmDevice.class) + InstanceIdentifier portId = InstanceIdentifier.create(OrgOpenroadmDevice.class) .child(CircuitPacks.class, new CircuitPacksKey(oldMapping.getSupportingCircuitPackName())) .child(Ports.class, new PortsKey(oldMapping.getSupportingPort())); if ((oldMapping == null) || (nodeId == null)) { @@ -188,15 +188,9 @@ public class PortMappingVersion710 { return false; } try { - Optional portObject = deviceTransactionManager.getDataFromDevice(nodeId, - LogicalDatastoreType.OPERATIONAL, portIId, Timeouts.DEVICE_READ_TIMEOUT, - Timeouts.DEVICE_READ_TIMEOUT_UNIT); - if (!portObject.isPresent()) { - return false; - } - Ports port = portObject.get(); - Mapping newMapping = createMappingObject(nodeId, port, oldMapping.getSupportingCircuitPackName(), - oldMapping.getLogicalConnectionPoint()); + Ports port = deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, + portId, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT).get(); + Mapping newMapping = updateMappingObject(nodeId, port, oldMapping); LOG.debug("{} : Updating old mapping Data {} for {} by new mapping data {}", nodeId, oldMapping, oldMapping.getLogicalConnectionPoint(), newMapping); final WriteTransaction writeTransaction = this.dataBroker.newWriteOnlyTransaction(); @@ -265,7 +259,8 @@ public class PortMappingVersion710 { int client = 1; Integer xponderNb = xponder.getXpdrNumber().toJava(); XpdrNodeTypes xponderType = xponder.getXpdrType(); - for (XpdrPort xpdrPort : xponder.nonnullXpdrPort().values()) { + for (XpdrPort xpdrPort : xponder.nonnullXpdrPort().values().stream() + .sorted((xp1, xp2) -> xp1.getIndex().compareTo(xp2.getIndex())).collect(Collectors.toList())) { String circuitPackName = xpdrPort.getCircuitPackName(); String portName = xpdrPort.getPortName().toString(); // If there xponder-subtree has missing circuit-packs or ports, @@ -830,13 +825,48 @@ public class PortMappingVersion710 { .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 ((port.getInterfaces() == null) || (!logicalConnectionPoint.contains(StringConstants.TTP_TOKEN) && !logicalConnectionPoint.contains(StringConstants.NETWORK_TOKEN))) { return mpBldr.build(); } - // Get OMS and OTS interface provisioned on the TTP's + mpBldr = updateMappingInterfaces(nodeId, mpBldr, port); + return mpBldr.build(); + } + + 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))) { + return mpBldr.build(); + } + // Get interfaces provisioned on the port + mpBldr = updateMappingInterfaces(nodeId, mpBldr, port); + return mpBldr.build(); + } + + private MappingBuilder updateMappingStates(MappingBuilder mpBldr, Ports port, Mapping oldmapping) { + if (port.getAdministrativeState() != null + && !port.getAdministrativeState().getName().equals(oldmapping.getPortAdminState())) { + mpBldr.setPortAdminState(port.getAdministrativeState().name()); + } + if (port.getOperationalState() != null + && !port.getOperationalState().getName().equals(oldmapping.getPortOperState())) { + mpBldr.setPortOperState(port.getOperationalState().name()); + } + return mpBldr; + } + + private MappingBuilder updateMappingInterfaces(String nodeId, MappingBuilder mpBldr, Ports port) { for (Interfaces interfaces : port.getInterfaces()) { try { Optional openRoadmInterface = this.openRoadmInterfaces.getInterface(nodeId, @@ -864,7 +894,7 @@ public class PortMappingVersion710 { nodeId, interfaces.getInterfaceName(), ex); } } - return mpBldr.build(); + return mpBldr; } private Mapping createXpdrMappingObject(String nodeId, Ports port, String circuitPackName, @@ -905,6 +935,12 @@ public class PortMappingVersion710 { } mpBldr.setSupportedInterfaceCapability(supportedIntf); } + if (port.getAdministrativeState() != null) { + mpBldr.setPortAdminState(port.getAdministrativeState().name()); + } + if (port.getOperationalState() != null) { + mpBldr.setPortOperState(port.getOperationalState().name()); + } return mpBldr.build(); } @@ -1202,7 +1238,7 @@ public class PortMappingVersion710 { } NodeInfoBuilder nodeInfoBldr = new NodeInfoBuilder() - .setOpenroadmVersion(OpenroadmVersion._710) + .setOpenroadmVersion(OpenroadmNodeVersion._710) .setNodeType(deviceInfo.getNodeType()); // TODO: 221 versions expects an int value - need to check whether it is bug or an evolution here if (deviceInfo.getClli() != null && !deviceInfo.getClli().isEmpty()) {