fix deprecated openroadm interfaces/objects
[transportpce.git] / pce / src / main / java / org / opendaylight / transportpce / pce / gnpy / GnpyTopoImpl.java
index de0f7b56c16f7e6ed996903e03b70e48f943c9fa..3bcdc327ba3e99f3b9c1d82f583677af62c18d3e 100644 (file)
@@ -43,12 +43,12 @@ import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.El
 import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ElementsBuilder;
 import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.Metadata;
 import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.MetadataBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.section.element.section.element.Span;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.section.element.section.element.ila.Ila;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.Node1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributes;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
@@ -152,22 +152,30 @@ public class GnpyTopoImpl {
                                 // topology and openRoadm network
                                 mapDisgNodeRefNode.put(openRoadmTopoNode.getNodeId().getValue(), nodeRef);
                                 Node1 openRoadmNetNode1 = null;
+                                org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
+                                    .Node1 commonNetworkNode1 = null;
                                 for (Node openRoadmNetNode : openRoadmNetNodeList) {
                                     if (openRoadmNetNode.getNodeId().getValue().equals(nodeRef)) {
                                         openRoadmNetNode1 = openRoadmNetNode.augmentation(Node1.class);
+                                        commonNetworkNode1 = openRoadmNetNode.augmentation(org.opendaylight.yang.gen.v1
+                                            .http.org.openroadm.common.network.rev181130.Node1.class);
                                         ipAddress = openRoadmNetNode1.getIp();
                                         mapNodeRefIp.put(nodeRef, ipAddress);
                                         break;
                                     }
                                 }
-                                if (openRoadmNetNode1.getNodeType().getName().equals("ROADM")) {
+                                if (commonNetworkNode1.getNodeType().getName().equals("ROADM")) {
+                                //if (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1)
+                                //            openRoadmNetNode1).getNodeType().getName().equals("ROADM")) {
                                     if (!nodesList.contains(nodeRef)) {
                                         Elements element = addElementsRoadm(2, 0, nodeRef, openRoadmNetNode1.getShelf(),
                                                 -20, ipAddress.getIpv4Address().getValue().toString());
                                         topoElements.add(element);
                                         nodesList.add(nodeRef);
                                     }
-                                } else if (openRoadmNetNode1.getNodeType().getName().equals("XPONDER")) {
+                                } else if (commonNetworkNode1.getNodeType().getName().equals("XPONDER")) {
+                                //} else if (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
+                                //            .Node1) openRoadmNetNode1).getNodeType().getName().equals("XPONDER")) {
                                     if (!nodesList.contains(nodeRef)) {
                                         Elements element = addElementsTransceiver(2, 0, nodeRef,
                                                 openRoadmNetNode1.getShelf(),
@@ -196,15 +204,25 @@ public class GnpyTopoImpl {
                         LOG.debug("The link list is not empty");
                         for (Link link : linksList) {
                             Link1 link1 = link.augmentation(Link1.class);
+                            org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130
+                                .Link1 openroadmNetworkLink1 = link.augmentation(org.opendaylight.yang.gen.v1.http.org
+                                .openroadm.network.topology.rev181130.Link1.class);
                             int linkType = link1.getLinkType().getIntValue();
+                            // the previous line generates a warning
+                            //  but the following cast in comment makes the gnpy tox test fail
+                            // ((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1) link1)
                             if (IntStream.of(externalLink).anyMatch(x -> x == linkType)) {
                                 // Verify if the node is a ROADM
                                 String srcId = mapDisgNodeRefNode.get(link.getSource().getSourceNode().getValue());
                                 IpAddress srcIp = mapNodeRefIp.get(srcId);
+                                String clfi = link1.getClfi();
                                 String destId = null;
                                 IpAddress destIp = null;
                                 // Add the links between amplifiers
-                                OMSAttributes omsAttributes = link1.getOMSAttributes();
+                                OMSAttributes omsAttributes = null;
+                                if (linkType == 4) {
+                                    omsAttributes = openroadmNetworkLink1.getOMSAttributes();
+                                }
                                 if (omsAttributes != null) {
                                     if (omsAttributes.getAmplifiedLink() != null) {
                                         List<AmplifiedLink> amplifiedLinkList = omsAttributes.getAmplifiedLink()
@@ -229,9 +247,6 @@ public class GnpyTopoImpl {
                                                 } else if (amplifiedLink.getSectionElement()
                                                         .getSectionElement() instanceof Span) {
                                                     // Create the location
-                                                    Span span = (Span) amplifiedLink.getSectionElement()
-                                                            .getSectionElement();
-                                                    String clfi = span.getSpan().getClfi();
                                                     IpAddress ipFiber = new IpAddress(
                                                             new Ipv4Address("2.2.2." + idFiber));
                                                     mapLinkFiber.put(link.getLinkId().getValue(), clfi);
@@ -257,10 +272,6 @@ public class GnpyTopoImpl {
                                             }
                                         }
                                     } else if (omsAttributes.getSpan() != null) {
-                                        org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130
-                                            .networks.network.link.oms.attributes.@Nullable Span span
-                                                = omsAttributes.getSpan();
-                                        String clfi = span.getClfi();
                                         IpAddress ipFiber = new IpAddress(new Ipv4Address("2.2.2." + idFiber));
                                         mapLinkFiber.put(link.getLinkId().getValue(), clfi);
                                         mapFiberIp.put(clfi, ipFiber);
@@ -271,6 +282,9 @@ public class GnpyTopoImpl {
                                         String typeVariety = "SSMF";
                                         double length = 0;
                                         // Compute the length of the link
+                                        org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130
+                                            .networks.network.link.oms.attributes.@Nullable Span span =
+                                            omsAttributes.getSpan();
                                         List<LinkConcatenation> linkConcatenationList = span.getLinkConcatenation();
                                         for (LinkConcatenation linkConcatenation : linkConcatenationList) {
                                             double srlgLength = linkConcatenation.getSRLGLength();
@@ -293,7 +307,7 @@ public class GnpyTopoImpl {
                                         }
                                     } else {
                                         // Add a fiber
-                                        String clfi = "Fiber" + idFiber;
+                                        clfi = "Fiber" + idFiber;
                                         IpAddress ipFiber = new IpAddress(new Ipv4Address("2.2.2." + idFiber));
                                         mapLinkFiber.put(link.getLinkId().getValue(), clfi);
                                         mapFiberIp.put(clfi, ipFiber);
@@ -480,4 +494,4 @@ public class GnpyTopoImpl {
     public void setMapFiberIp(Map<String, IpAddress> mapFiberIp) {
         this.mapFiberIp = mapFiberIp;
     }
-}
\ No newline at end of file
+}