Use version 13.1.0 of openroadm-service models
[transportpce.git] / networkmodel / src / main / java / org / opendaylight / transportpce / networkmodel / util / OpenRoadmOtnTopology.java
index c47acc9d9d5afc664b7fd9f5d69cd72d6517cd67..974ff6de924a848ddfea7e70c42409210eb9bf5b 100644 (file)
@@ -56,6 +56,17 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev2
 import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.XpdrAttributesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.termination.point.TpSupportedInterfacesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If100GE;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If100GEODU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If10GE;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If10GEODU2;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If10GEODU2e;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If1GEODU0;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.If400GE;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOCH;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOCHOTU4ODU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOTU4ODU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.IfOtsiOtsigroup;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev201211.SupportedIfCapability;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.switching.pool.types.rev191129.SwitchingPoolTypes;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev211210.xpdr.otn.tp.attributes.OdtuTpnPool;
@@ -750,10 +761,11 @@ public final class OpenRoadmOtnTopology {
                     mapping.getLogicalConnectionPoint(), node.getNodeId());
             } else {
                 XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder();
-                for (SupportedIfCapability supInterCapa : mapping.getSupportedInterfaceCapability()) {
+                for (org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.SupportedIfCapability
+                        supInterCapa : mapping.getSupportedInterfaceCapability()) {
                     SupportedInterfaceCapability supIfCapa = new SupportedInterfaceCapabilityBuilder()
-                        .withKey(new SupportedInterfaceCapabilityKey(supInterCapa))
-                        .setIfCapType(supInterCapa)
+                        .withKey(new SupportedInterfaceCapabilityKey(convertSupIfCapa(supInterCapa.toString())))
+                        .setIfCapType(convertSupIfCapa(supInterCapa.toString()))
                         .build();
                     supIfMap.put(supIfCapa.key(), supIfCapa);
                 }
@@ -814,8 +826,10 @@ public final class OpenRoadmOtnTopology {
         }
     }
 
-    private static OduRateIdentity fixRate(Set<SupportedIfCapability> list) {
-        for (SupportedIfCapability supIfCap: list) {
+    private static OduRateIdentity fixRate(
+            Set<org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.SupportedIfCapability> list) {
+        for (org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev230526.SupportedIfCapability
+                supIfCap: list) {
             String simpleName = supIfCap.toString().split("\\{")[0];
             if (RATE_MAP.containsKey(simpleName)) {
                 return RATE_MAP.get(simpleName);
@@ -884,4 +898,33 @@ public final class OpenRoadmOtnTopology {
                 : new StringBuilder(nodeName).append("-").append(tpName.split("-")[0]).toString();
     }
 
+    private static SupportedIfCapability convertSupIfCapa(String ifCapType) {
+        ImmutableMap<String, SupportedIfCapability> capTypeMap =
+            ImmutableMap.<String, SupportedIfCapability>builder()
+                .put("If400GE{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-400GE}", If400GE.VALUE)
+                .put("IfOTU4ODU4{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-OTU4-ODU4}",
+                        IfOTU4ODU4.VALUE)
+                .put("IfOtsiOtsigroup{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-otsi-otsigroup}",
+                    IfOtsiOtsigroup.VALUE)
+                .put("IfOCH{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-OCH}", IfOCH.VALUE)
+                .put("IfOCHOTU4ODU4{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-OCH-OTU4-ODU4}",
+                    IfOCHOTU4ODU4.VALUE)
+                .put("If1GEODU0{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-1GE-ODU0}",
+                    If1GEODU0.VALUE)
+                .put("If10GE{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-10GE}", If10GE.VALUE)
+                .put("If10GEODU2{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-10GE-ODU2}",
+                    If10GEODU2.VALUE)
+                .put("If10GEODU2e{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-10GE-ODU2e}",
+                    If10GEODU2e.VALUE)
+                .put("If100GE{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-100GE}", If100GE.VALUE)
+                .put("If100GEODU4{qname=(http://org/openroadm/port/types?revision=2023-05-26)if-100GE-ODU4}",
+                    If100GEODU4.VALUE)
+                .build();
+        if (!capTypeMap.containsKey(ifCapType)) {
+            LOG.error("supported-if-capability {} not supported", ifCapType);
+            return null;
+        }
+        return capTypeMap.get(ifCapType);
+    }
+
 }