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=b9a12e5881a760ef2a3949324dc9813d255293e8;hb=eedfcf046eadaa5ca9d38792c0af8769a4006f32;hp=6b55a2feda0325db15c366a7ae4e9b47a86c5f9e;hpb=95dfcd5e9db45f33bc08f3dedceaa20730edb20a;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 6b55a2fed..b9a12e588 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 @@ -12,7 +12,6 @@ import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEV 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; @@ -20,20 +19,34 @@ 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.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.otn.renderer.nodes.Nodes; +import org.opendaylight.yangtools.yang.common.Decimal64; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Component public class CrossConnectImpl implements CrossConnect { private static final Logger LOG = LoggerFactory.getLogger(CrossConnectImpl.class); - protected CrossConnect crossConnect; private final MappingUtils mappingUtils; private CrossConnectImpl121 crossConnectImpl121; private CrossConnectImpl221 crossConnectImpl221; private CrossConnectImpl710 crossConnectImpl710; + @Activate + public CrossConnectImpl(@Reference DeviceTransactionManager deviceTransactionManager, + @Reference MappingUtils mappingUtils) { + this(deviceTransactionManager, mappingUtils, + new CrossConnectImpl121(deviceTransactionManager), + new CrossConnectImpl221(deviceTransactionManager), + new CrossConnectImpl710(deviceTransactionManager)); + } + + // TODO: DeviceTransactionManager is not used here public CrossConnectImpl(DeviceTransactionManager deviceTransactionManager, MappingUtils mappingUtils, CrossConnectImpl121 crossConnectImpl121, CrossConnectImpl221 crossConnectImpl221, @@ -42,42 +55,39 @@ public class CrossConnectImpl implements CrossConnect { 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 (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) { - return crossConnectImpl121.getCrossConnect(nodeId,connectionNumber); - } - else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { - return crossConnectImpl221.getCrossConnect(nodeId,connectionNumber); + switch (mappingUtils.getOpenRoadmVersion(nodeId)) { + case OPENROADM_DEVICE_VERSION_1_2_1: + return crossConnectImpl121.getCrossConnect(nodeId,connectionNumber); + case OPENROADM_DEVICE_VERSION_2_2_1: + return crossConnectImpl221.getCrossConnect(nodeId,connectionNumber); + default: + return Optional.empty(); } - return Optional.empty(); } 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 (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) { - LOG.info("Device Version is 1.2.1"); - return crossConnectImpl121.postCrossConnect(nodeId, srcTp, destTp, spectrumInformation); - } - else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { - LOG.info("Device Version is 2.2"); - return crossConnectImpl221.postCrossConnect(nodeId, srcTp, destTp, - spectrumInformation); + LOG.info("Cross Connect post request received for node {} with version {}", nodeId, openRoadmVersion); + switch (openRoadmVersion) { + case OPENROADM_DEVICE_VERSION_1_2_1: + LOG.info("Device Version is 1.2.1"); + return crossConnectImpl121.postCrossConnect(nodeId, srcTp, destTp, spectrumInformation); + case OPENROADM_DEVICE_VERSION_2_2_1: + LOG.info("Device Version is 2.2.1"); + return crossConnectImpl221.postCrossConnect(nodeId, srcTp, destTp, spectrumInformation); + default: + LOG.info("Device Version not found"); + return Optional.empty(); } - LOG.info("Device Version not found"); - return Optional.empty(); - } public List deleteCrossConnect(String nodeId, String connectionNumber, Boolean isOtn) { - switch (mappingUtils.getOpenRoadmVersion(nodeId)) { case OPENROADM_DEVICE_VERSION_1_2_1: return crossConnectImpl121.deleteCrossConnect(nodeId, connectionNumber); @@ -93,45 +103,52 @@ public class CrossConnectImpl implements CrossConnect { public List getConnectionPortTrail(String nodeId, String srcTp, String destTp, int lowerSpectralSlotNumber, int higherSpectralSlotNumber) throws OpenRoadmInterfaceException { - String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); - if (OPENROADM_DEVICE_VERSION_1_2_1.equals(openRoadmVersion)) { - return crossConnectImpl121.getConnectionPortTrail(nodeId, srcTp, destTp, - lowerSpectralSlotNumber, higherSpectralSlotNumber); - } - else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) { - return crossConnectImpl221 + switch (mappingUtils.getOpenRoadmVersion(nodeId)) { + case OPENROADM_DEVICE_VERSION_1_2_1: + return crossConnectImpl121 + .getConnectionPortTrail(nodeId, srcTp, destTp, lowerSpectralSlotNumber, higherSpectralSlotNumber); + case OPENROADM_DEVICE_VERSION_2_2_1: + return crossConnectImpl221 .getConnectionPortTrail(nodeId, srcTp, destTp, lowerSpectralSlotNumber, higherSpectralSlotNumber); + default: + return null; } - return null; } - public boolean setPowerLevel(String nodeId, String mode, BigDecimal powerValue, String connectionNumber) { - String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId); - 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 (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); + @Override + public boolean setPowerLevel(String nodeId, String mode, Decimal64 powerValue, String connectionNumber) { + switch (mappingUtils.getOpenRoadmVersion(nodeId)) { + case OPENROADM_DEVICE_VERSION_1_2_1: + if (OpticalControlMode.forName(mode) == null) { + return false; + } + return crossConnectImpl121.setPowerLevel(nodeId, + OpticalControlMode.forName(mode), + powerValue, connectionNumber); + case OPENROADM_DEVICE_VERSION_2_2_1: + if (org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode + .forName(mode) == null) { + return false; + } + return crossConnectImpl221.setPowerLevel(nodeId, + org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode + .forName(mode), + powerValue, connectionNumber); + default: + return false; } - 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); + switch (mappingUtils.getOpenRoadmVersion(node.getNodeId())) { + case OPENROADM_DEVICE_VERSION_2_2_1: + return crossConnectImpl221.postOtnCrossConnect(createdOduInterfaces, node); + case OPENROADM_DEVICE_VERSION_7_1: + return crossConnectImpl710.postOtnCrossConnect(createdOduInterfaces, node); + default: + return Optional.empty(); } - return Optional.empty(); } }