import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.renderer.rollback.output.FailedToRollback;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.renderer.rollback.output.FailedToRollbackBuilder;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.renderer.rollback.output.FailedToRollbackKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.OpenroadmNodeVersion;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.mapping.Mapping;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.Topology;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceList;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.Services;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.ServicesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.ServicesKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.OpenroadmNodeVersion;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.Topology;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceList;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.Services;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.ServicesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.ServicesKey;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTp;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTpBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterface;
forkJoinPool.shutdown();
if (success.get()) {
- results.add("Roadm-connection successfully created for nodes: " + String.join(", ", nodesProvisioned));
+ results.add("Interfaces created successfully for nodes: " + String.join(", ", nodesProvisioned));
}
// setting topology in the service list data store
try {
@Override
public ServicePathOutput deleteServicePath(ServicePathInput input) {
if (!alarmSuppressionNodeRegistration(input)) {
- LOG.warn("Alarm suppresion node registraion failed!!!!");
+ LOG.warn("Alarm suppression node registration failed!!!!");
}
List<Nodes> nodes = input.getNodes();
AtomicBoolean success = new AtomicBoolean(true);
OpenroadmNodeVersion nodeOpenRoadmVersion =
this.portMapping.getNode(nodeId).getNodeInfo().getOpenroadmVersion();
+
List<String> interfacesToDelete = new LinkedList<>();
Map<String, List<String>> suffixListMap =
nodeOpenRoadmVersion.equals(OpenroadmNodeVersion._71)
? Map.of(
- "ODU", List.of("ODUC4","ODUFLEX"),
- // -400G added due to the change in naming convention
- "other", List.of("OTUC4", "OTSIGROUP-400G", spectralSlotName))
+ // We don't need ODUC2, ODUC3 here, since they are handled in OTN service-path
+ // This has to be in an order of deletion
+ "ODU", List.of("ODU4", "ODUFLEX", "ODUC4"),
+ // Add intermediate OTUCn rates (OTUC2, OTUC3)
+ // OTU4 is used in 100G service on 7.1 model
+ "other", List.of("OTU4", "OTUC2", "OTUC3", "OTUC4",
+ "OTSIGROUP-400G", "OTSIGROUP-300G", "OTSIGROUP-200G",
+ spectralSlotName))
: Map.of(
"ODU", List.of("ODU", "ODU4"),
"other", List.of("OTU", spectralSlotName));
suffixListMap.get("ODU")),
e);
}
- for (String suffix : suffixListMap.get("other")) {
- interfacesToDelete.add(String.join(GridConstant.NAME_PARAMETERS_SEPARATOR, destTp, suffix));
+ try {
+ for (String suffix : suffixListMap.get("other")) {
+ if (this.openRoadmInterfaces.getInterface(
+ nodeId, String.join(GridConstant.NAME_PARAMETERS_SEPARATOR, destTp, suffix)).isPresent()) {
+ LOG.info("Deleting the interface {}",
+ String.join(GridConstant.NAME_PARAMETERS_SEPARATOR, destTp, suffix));
+ interfacesToDelete.add(String.join(GridConstant.NAME_PARAMETERS_SEPARATOR, destTp, suffix));
+ }
+ }
+ }
+ catch (OpenRoadmInterfaceException e) {
+ LOG.error("impossible to get one of the interfaces {}",
+ destTp + GridConstant.NAME_PARAMETERS_SEPARATOR + String.join(
+ " or " + destTp + GridConstant.NAME_PARAMETERS_SEPARATOR,
+ suffixListMap.get("ODU")),
+ e);
}
}
if (srcTp.contains(StringConstants.NETWORK_TOKEN)) {