+ // if the node is currently mounted then proceed.
+ List<String> interfacesToDelete = new LinkedList<>();
+ String connectionNumber = "";
+ switch (serviceType) {
+ case StringConstants.SERVICE_TYPE_100GE_S:
+ connectionNumber = getConnectionNumber(null, node, networkTp, "ODU4");
+ break;
+ case StringConstants.SERVICE_TYPE_100GE_M:
+ connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU4");
+ otnLinkTps.add(new LinkTpBuilder()
+ .setNodeId(nodeId)
+ .setTpId(networkTp)
+ .build());
+ break;
+ case StringConstants.SERVICE_TYPE_ODU4:
+ if (node.getClientTp() == null && node.getNetwork2Tp() == null) {
+ interfacesToDelete.add(networkTp + "-ODU4");
+ otnLinkTps.add(new LinkTpBuilder()
+ .setNodeId(nodeId)
+ .setTpId(networkTp)
+ .build());
+ }
+ if (node.getClientTp() == null && node.getNetwork2Tp() != null) {
+ interfacesToDelete.add(networkTp + "-ODU4");
+ interfacesToDelete.add(node.getNetwork2Tp() + "-ODU4");
+ connectionNumber = getConnectionNumber(null, node, networkTp, "ODU4");
+ }
+ break;
+ case StringConstants.SERVICE_TYPE_ODUC4:
+ if (node.getClientTp() == null && node.getNetwork2Tp() == null) {
+ interfacesToDelete.add(networkTp + "-ODUC4");
+ otnLinkTps.add(new LinkTpBuilder()
+ .setNodeId(nodeId)
+ .setTpId(networkTp)
+ .build());
+ }
+ if (node.getClientTp() == null && node.getNetwork2Tp() != null) {
+ interfacesToDelete.add(networkTp + "-ODUC4");
+ interfacesToDelete.add(node.getNetwork2Tp() + "-ODUC4");
+ connectionNumber = getConnectionNumber(null, node, networkTp, "ODUC4");
+ }
+ break;
+ case StringConstants.SERVICE_TYPE_10GE:
+ connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU2e");
+ otnLinkTps.add(new LinkTpBuilder()
+ .setNodeId(nodeId)
+ .setTpId(networkTp)
+ .build());
+ break;
+ case StringConstants.SERVICE_TYPE_1GE:
+ connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU0");
+ otnLinkTps.add(new LinkTpBuilder()
+ .setNodeId(nodeId)
+ .setTpId(networkTp)
+ .build());
+ break;
+ default:
+ LOG.error("service-type {} not managed yet", serviceType);
+ String result = serviceType + " is not supported";
+ results.add(result);
+ success.set(false);
+ return;
+ }
+ List<String> intToDelete = this.crossConnect.deleteCrossConnect(nodeId, connectionNumber, true);
+ for (String interf : intToDelete == null ? new ArrayList<String>() : intToDelete) {
+ if (!this.openRoadmInterfaceFactory.isUsedByOtnXc(nodeId, interf, connectionNumber,
+ this.deviceTransactionManager)) {
+ interfacesToDelete.add(interf);
+ String supportedInterface = this.openRoadmInterfaces.getSupportedInterface(nodeId, interf);
+ if (supportedInterface == null) {
+ continue;
+ }
+ if ((input.getServiceRate().intValue() == 100 && !supportedInterface.contains("ODUC4"))
+ || (input.getServiceRate().intValue() != 100 && !supportedInterface.contains("ODU4"))) {
+ interfacesToDelete.add(supportedInterface);
+ }
+ }
+ }
+