Replace tpce-topology yang by existing ordmodels
[transportpce.git] / networkmodel / src / main / java / org / opendaylight / transportpce / networkmodel / service / NetworkModelServiceImpl.java
index 6de0c89773366143ef9996385ea8677bf69bf977..e71c5dc52b722a422b984c7d41b1e27e1c0f9891 100644 (file)
@@ -38,15 +38,15 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmo
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.topology.update.result.TopologyChanges;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.topology.update.result.TopologyChangesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.topology.update.result.TopologyChangesKey;
-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.opendaylight.transportpce.portmapping.rev220114.network.nodes.NodeInfo;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev220630.OtnLinkType;
+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.opendaylight.transportpce.portmapping.rev220316.network.nodes.NodeInfo;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.Link1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210.TerminationPoint1;
 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.transportpce.topology.rev210511.OtnLinkType;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
@@ -108,6 +108,14 @@ public class NetworkModelServiceImpl implements NetworkModelService {
         try {
             LOG.info("createOpenROADMNode: {} ", nodeId);
 
+            boolean firstMount;
+            if (portMapping.getNode(nodeId) == null) {
+                firstMount = true;
+            } else {
+                LOG.info("{} already exists in portmapping but was reconnected", nodeId);
+                firstMount = false;
+            }
+
             if (!portMapping.createMappingData(nodeId, openRoadmVersion)) {
                 LOG.warn("Could not generate port mapping for {} skipping network model creation", nodeId);
                 return;
@@ -133,7 +141,8 @@ public class NetworkModelServiceImpl implements NetworkModelService {
                 openroadmNetworkNode);
 
             // nodes/links creation in openroadm-topology
-            TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(portMapping.getNode(nodeId));
+            TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(portMapping.getNode(nodeId),
+                                                                                firstMount);
             if (topologyShard != null) {
                 this.topologyShardMountedDevice.put(nodeId, topologyShard);
                 for (Node openRoadmTopologyNode : topologyShard.getNodes()) {
@@ -331,7 +340,7 @@ public class NetworkModelServiceImpl implements NetworkModelService {
                         .setNodeId(abstractNodeid)
                         .setTpId(tp.getTpId().getValue())
                         .setState(tp.augmentation(
-                            org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1
+                            org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1
                                 .class).getOperationalState())
                         .build();
                     if (!this.topologyChanges.containsKey(tc.key())) {
@@ -372,7 +381,7 @@ public class NetworkModelServiceImpl implements NetworkModelService {
                         .setNodeId(abstractNodeid)
                         .setTpId(tp.getTpId().getValue())
                         .setState(tp.augmentation(
-                            org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1
+                            org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1
                                 .class).getOperationalState())
                         .build();
                     if (!this.topologyChanges.containsKey(tc.key())) {
@@ -398,10 +407,14 @@ public class NetworkModelServiceImpl implements NetworkModelService {
         TopologyShard otnTopologyShard;
         switch (linkType) {
             case OTU4:
+            case OTUC2:
+            case OTUC3:
             case OTUC4:
                 otnTopologyShard = OpenRoadmOtnTopology.createOtnLinks(notifLink, null, null, linkType);
                 break;
             case ODTU4:
+            case ODUC2:
+            case ODUC3:
             case ODUC4:
                 List<LinkId> linkIdList = new ArrayList<>();
                 if (suppLinks != null) {
@@ -470,6 +483,8 @@ public class NetworkModelServiceImpl implements NetworkModelService {
         List<LinkId> linkIdList = new ArrayList<>();
         switch (linkType) {
             case OTU4:
+            case OTUC2:
+            case OTUC3:
             case OTUC4:
                 linkIdList.add(LinkIdUtil.buildOtnLinkId(nodeTopoA, tpA, nodeTopoZ, tpZ, linkType.getName()));
                 linkIdList.add(LinkIdUtil.buildOtnLinkId(nodeTopoZ, tpZ, nodeTopoA, tpA, linkType.getName()));
@@ -482,6 +497,8 @@ public class NetworkModelServiceImpl implements NetworkModelService {
                 otnTopologyShard = new TopologyShard(null, null);
                 break;
             case ODTU4:
+            case ODUC2:
+            case ODUC3:
             case ODUC4:
                 linkIdList.add(LinkIdUtil.buildOtnLinkId(nodeTopoA, tpA, nodeTopoZ, tpZ, linkType.getName()));
                 linkIdList.add(LinkIdUtil.buildOtnLinkId(nodeTopoZ, tpZ, nodeTopoA, tpA, linkType.getName()));