Update port-mapping data for REGEN xpdr-type
[transportpce.git] / networkmodel / src / main / java / org / opendaylight / transportpce / networkmodel / util / OpenRoadmOtnTopology.java
index 95a61e0c27b5c4f2e15764bc3d47f9d8c027db62..c47acc9d9d5afc664b7fd9f5d69cd72d6517cd67 100644 (file)
@@ -133,6 +133,11 @@ public final class OpenRoadmOtnTopology {
                 case Switch:
                     nodes.add(createSwitch(node));
                     break;
+                case Regen:
+                case RegenUni:
+                    // TODO: Need to revisit this method
+                    nodes.add(createRegen(node));
+                    break;
                 default:
                     LOG.error("unknown otn node type {}", node.getNodeType().getName());
                     return null;
@@ -571,6 +576,38 @@ public final class OpenRoadmOtnTopology {
             .build();
     }
 
+    // TODO: This is same as createTpdr. After Open ROADM network models are updated,
+    //    we will revisit this method to include regen based data.
+    private static Node createRegen(OtnTopoNode node) {
+        Map<TerminationPointKey,TerminationPoint> tpMap = new HashMap<>();
+        createTP(tpMap, node, OpenroadmTpType.XPONDERCLIENT, false);
+        createTP(tpMap, node, OpenroadmTpType.XPONDERNETWORK, true);
+        // return ietfNode
+        return new NodeBuilder()
+                .setNodeId(new NodeId(node.getNodeId() + XPDR + node.getXpdrNb()))
+                .withKey(new NodeKey(new NodeId(node.getNodeId() + XPDR + node.getXpdrNb())))
+                .setSupportingNode(createSupportingNodes(node))
+                .addAugmentation(
+                        new Node1Builder()
+                                .setXpdrAttributes(
+                                        new XpdrAttributesBuilder()
+                                                .setXpdrNumber(Uint16.valueOf(node.getXpdrNb()))
+                                                .build())
+                                .build())
+                .addAugmentation(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder()
+                                .setNodeType(OpenroadmNodeType.TPDR)
+                                .setOperationalState(State.InService)
+                                .setAdministrativeState(AdminStates.InService)
+                                .build())
+                .addAugmentation(
+                        new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
+                                .Node1Builder()
+                                .setTerminationPoint(tpMap)
+                                .build())
+                .build();
+    }
+
     private static Node createMuxpdr(OtnTopoNode node) {
 
         // prepare otn-topology node augmentation