X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fcrossconnect%2FCrossConnectImpl.java;h=71af9a89c168655c74b50e1c48d5902d9b321186;hb=refs%2Fchanges%2F46%2F100646%2F27;hp=463dabd9456473376f3d493f38a4ebdcc1b41628;hpb=dcb0b2e2f020517a9f08d45bef269c88bdbaf256;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl.java b/common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl.java index 463dabd94..71af9a89c 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl.java @@ -10,14 +10,17 @@ package org.opendaylight.transportpce.common.crossconnect; import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEVICE_VERSION_1_2_1; import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEVICE_VERSION_2_2_1; +import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEVICE_VERSION_7_1; -import java.math.BigDecimal; import java.util.List; import java.util.Optional; - import org.opendaylight.transportpce.common.device.DeviceTransactionManager; +import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation; import org.opendaylight.transportpce.common.mapping.MappingUtils; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.OpticalControlMode; +import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes; +import org.opendaylight.yangtools.yang.common.Decimal64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,78 +32,107 @@ public class CrossConnectImpl implements CrossConnect { private final MappingUtils mappingUtils; private CrossConnectImpl121 crossConnectImpl121; private CrossConnectImpl221 crossConnectImpl221; + private CrossConnectImpl710 crossConnectImpl710; public CrossConnectImpl(DeviceTransactionManager deviceTransactionManager, MappingUtils mappingUtils, CrossConnectImpl121 crossConnectImpl121, - CrossConnectImpl221 crossConnectImpl221) { + CrossConnectImpl221 crossConnectImpl221, + CrossConnectImpl710 crossConnectImpl710) { this.mappingUtils = mappingUtils; this.crossConnectImpl121 = crossConnectImpl121; this.crossConnectImpl221 = crossConnectImpl221; + this.crossConnectImpl710 = crossConnectImpl710; this.crossConnect = null; } public Optional getCrossConnect(String nodeId, String connectionNumber) { String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); - if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_1_2_1)) { + if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) { return crossConnectImpl121.getCrossConnect(nodeId,connectionNumber); } - else if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_2_2_1)) { + else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { return crossConnectImpl221.getCrossConnect(nodeId,connectionNumber); } - return null; + return Optional.empty(); } - public Optional postCrossConnect(String nodeId, Long waveNumber, String srcTp, String destTp) { + public Optional postCrossConnect(String nodeId, String srcTp, String destTp, + SpectrumInformation spectrumInformation) { String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); LOG.info("Cross Connect post request received for node {} with version {}",nodeId,openRoadmVersion); - if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_1_2_1)) { + if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) { LOG.info("Device Version is 1.2.1"); - return crossConnectImpl121.postCrossConnect(nodeId, waveNumber, srcTp, destTp); + return crossConnectImpl121.postCrossConnect(nodeId, srcTp, destTp, spectrumInformation); } - else if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_2_2_1)) { + else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { LOG.info("Device Version is 2.2"); - return crossConnectImpl221.postCrossConnect(nodeId, waveNumber, srcTp, destTp); + return crossConnectImpl221.postCrossConnect(nodeId, srcTp, destTp, + spectrumInformation); } LOG.info("Device Version not found"); - return null; + return Optional.empty(); } - public List deleteCrossConnect(String nodeId, String connectionNumber) { + public List deleteCrossConnect(String nodeId, String connectionNumber, Boolean isOtn) { - String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); - if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_1_2_1)) { - return crossConnectImpl121.deleteCrossConnect(nodeId, connectionNumber); - } - else if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_2_2_1)) { - return crossConnectImpl221.deleteCrossConnect(nodeId, connectionNumber); + switch (mappingUtils.getOpenRoadmVersion(nodeId)) { + case OPENROADM_DEVICE_VERSION_1_2_1: + return crossConnectImpl121.deleteCrossConnect(nodeId, connectionNumber); + case OPENROADM_DEVICE_VERSION_2_2_1: + return crossConnectImpl221.deleteCrossConnect(nodeId, connectionNumber, isOtn); + case OPENROADM_DEVICE_VERSION_7_1: + return crossConnectImpl710.deleteOtnCrossConnect(nodeId, connectionNumber); + default: + return null; } - return null; } - public List getConnectionPortTrail(String nodeId, Long waveNumber, String srcTp, String destTp) + public List getConnectionPortTrail(String nodeId, String srcTp, String destTp, int lowerSpectralSlotNumber, + int higherSpectralSlotNumber) throws OpenRoadmInterfaceException { String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); - if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_1_2_1)) { - return crossConnectImpl121.getConnectionPortTrail(nodeId, waveNumber, srcTp, destTp); + if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) { + return crossConnectImpl121.getConnectionPortTrail(nodeId, srcTp, destTp, + lowerSpectralSlotNumber, higherSpectralSlotNumber); } - else if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_2_2_1)) { - return crossConnectImpl221.getConnectionPortTrail(nodeId, waveNumber, srcTp, destTp); + else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { + return crossConnectImpl221 + .getConnectionPortTrail(nodeId, srcTp, destTp, lowerSpectralSlotNumber, higherSpectralSlotNumber); } return null; } - public boolean setPowerLevel(String nodeId, Enum mode, BigDecimal powerValue, - String connectionNumber) { + @Override + public boolean setPowerLevel(String nodeId, String mode, Decimal64 powerValue, String connectionNumber) { String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); - if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_1_2_1)) { - return crossConnectImpl121.setPowerLevel(nodeId,mode,powerValue,connectionNumber); + if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion) && OpticalControlMode.forName(mode).isPresent()) { + return crossConnectImpl121.setPowerLevel(nodeId,OpticalControlMode.forName(mode).get(), powerValue, + connectionNumber); } - else if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_2_2_1)) { - return crossConnectImpl221.setPowerLevel(nodeId,mode,powerValue,connectionNumber); + else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion) + && org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode.forName(mode) + .isPresent()) { + return crossConnectImpl221.setPowerLevel(nodeId, + org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode.forName(mode) + .get(), powerValue, connectionNumber); } return false; } + + @Override + public Optional postOtnCrossConnect(List createdOduInterfaces, Nodes node) + throws OpenRoadmInterfaceException { + String openRoadmVersion = mappingUtils.getOpenRoadmVersion(node.getNodeId()); + + if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { + return crossConnectImpl221.postOtnCrossConnect(createdOduInterfaces, node); + } + else if (OPENROADM_DEVICE_VERSION_7_1.equals(openRoadmVersion)) { + return crossConnectImpl710.postOtnCrossConnect(createdOduInterfaces, node); + } + return Optional.empty(); + } }