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;
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<String> postCrossConnect(String nodeId, Long waveNumber, String srcTp, String destTp) {
+ public Optional<String> 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, waveNumber, srcTp, destTp);
+ 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, waveNumber, srcTp, destTp);
+ return crossConnectImpl221.postCrossConnect(nodeId, srcTp, destTp,
+ spectrumInformation);
}
LOG.info("Device Version not found");
return Optional.empty();
return null;
}
- public List<?> getConnectionPortTrail(String nodeId, Long waveNumber, String srcTp, String destTp)
+ public List<String> 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, 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, waveNumber, srcTp, destTp);
+ return crossConnectImpl121.getConnectionPortTrail(nodeId, srcTp, destTp,
+ lowerSpectralSlotNumber, higherSpectralSlotNumber);
}
else if (OPENROADM_DEVICE_VERSION_2_2_1.equals(openRoadmVersion)) {
- return crossConnectImpl221.getConnectionPortTrail(nodeId, waveNumber, srcTp, destTp);
+ return crossConnectImpl221
+ .getConnectionPortTrail(nodeId, srcTp, destTp, lowerSpectralSlotNumber, higherSpectralSlotNumber);
}
return null;
}
@Override
public Optional<String> postOtnCrossConnect(List<String> createdOduInterfaces, Nodes node)
throws OpenRoadmInterfaceException {
- return crossConnectImpl221.postOtnCrossConnect(createdOduInterfaces, node);
+ 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();
}
}