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=4c9d3272171f32886915ea4e7d94a87e9d60bf13;hb=ed0789eb5b14e334c5750e73e456157d9076b1bc;hp=463dabd9456473376f3d493f38a4ebdcc1b41628;hpb=695a5251d67a1133d16c6b81b6bc45d646a671ad;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..4c9d32721 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.rev201211.otn.renderer.input.Nodes; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,78 +32,112 @@ 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)) { + if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) { return crossConnectImpl121.deleteCrossConnect(nodeId, connectionNumber); } - else if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_2_2_1)) { - return crossConnectImpl221.deleteCrossConnect(nodeId, connectionNumber); + else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { + return crossConnectImpl221.deleteCrossConnect(nodeId, connectionNumber, isOtn); + } + return null; + } + + public List deleteCrossConnect(String nodeId, String connectionNumber) { + String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); + if (OPENROADM_DEVICE_VERSION_7_1.equals(openRoadmVersion)) { + return crossConnectImpl710.deleteOtnCrossConnect(nodeId, connectionNumber); } 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) { + public boolean setPowerLevel(String nodeId, String mode, BigDecimal 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(); + } }