Reintroduce (ordm 2.2.1) Rdm2Rdm links in topo
[transportpce.git] / networkmodel / src / main / java / org / opendaylight / transportpce / networkmodel / util / OpenRoadmTopology22.java
index ecb21b2279c2e164fd40cd202dfda5e780c7d2e7..ecba7552228a8558919cda4bf3f8ee23129d9be3 100644 (file)
@@ -145,7 +145,7 @@ public class OpenRoadmTopology22 {
 
         InstanceIdentifier<Info> infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class);
         java.util.Optional<Info> deviceInfoOpt =
-                deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.CONFIGURATION, infoIID,
+                deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, infoIID,
                         Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
         Info deviceInfo;
         if (deviceInfoOpt.isPresent()) {
@@ -155,9 +155,8 @@ public class OpenRoadmTopology22 {
             return null;
         }
         List<Node> nodes = new ArrayList<>();
-
         // Check if node is ROADM
-        if (NodeTypes.Rdm.equals(deviceInfo.getNodeType())) {
+        if (NodeTypes.Rdm.getName().equals(deviceInfo.getNodeType().getName())) {
 
             /*
              * Adding Degree Node Get Degree Number -> x then get connection ports then find the port directions
@@ -222,7 +221,7 @@ public class OpenRoadmTopology22 {
             links.addAll(createAddDropLinks(nodeId, numOfDegrees, numOfSrgs, portDirectionEnum));
             LOG.info("created nodes/links: {}/{}", nodes.size(), links.size());
             return new TopologyShard(nodes, links);
-        } else if (NodeTypes.Xpdr.equals(deviceInfo.getNodeType())) {
+        } else if (NodeTypes.Xpdr.getName().equals(deviceInfo.getNodeType().getName())) {
             // Check if node is XPONDER
             Integer clientport = getNoOfClientPorts(nodeId);
             List<Link> links = new ArrayList<>();
@@ -240,7 +239,7 @@ public class OpenRoadmTopology22 {
             }
             return new TopologyShard(nodes, links);
         }
-
+        LOG.error("Device node Type not managed yet");
         return null;
     }
 
@@ -439,9 +438,9 @@ public class OpenRoadmTopology22 {
 
 
     private NodeBuilder createSrgNode(String nodeId, int srgCounter, int portDirectionEnum) {
-        // Create augmentation node to inorder to add degree
+        // Create augmentation node to in order to add srg
         Node1Builder node1bldr = new Node1Builder();
-        // set node type to degree
+        // set node type to SRG
         node1bldr.setNodeType(OpenroadmNodeType.SRG);
 
         node1bldr.setNodeType(OpenroadmNodeType.SRG);
@@ -475,14 +474,14 @@ public class OpenRoadmTopology22 {
                     break;
                 }
                 // ports are uni Directional on a degree, therefore 4 termination points
-                // Create TTP-TX termination
+                // Create PP-TX termination
                 tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TX");
                 tp1Bldr = new TerminationPoint1Builder();
                 tp1Bldr.setTpType(OpenroadmTpType.SRGTXPP);
                 tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
                 tpList.add(tempTpBldr.build());
 
-                // Create TTP-RX termination
+                // Create PP-RX termination
                 tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-RX");
                 tp1Bldr = new TerminationPoint1Builder();
                 tp1Bldr.setTpType(OpenroadmTpType.SRGRXPP);
@@ -491,7 +490,7 @@ public class OpenRoadmTopology22 {
 
             } else if (portDirectionEnum == 3) {
                 // Ports are bi directional therefore 2 termination points
-                // Create TTP-TXRX termination
+                // Create PP-TXRX termination
                 tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TXRX");
                 tp1Bldr = new TerminationPoint1Builder();
                 tp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP);
@@ -500,17 +499,44 @@ public class OpenRoadmTopology22 {
             }
         }
 
-        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608
-                .Node1Builder tpNode1 =
-                new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
-                        .network.topology.rev150608.Node1Builder();
+        switch (portDirectionEnum) {
+            case 1: // ports are uni Directional on a degree
+            case 2:
+                // Create CP-TX termination
+                tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-TX");
+                tp1Bldr = new TerminationPoint1Builder();
+                tp1Bldr.setTpType(OpenroadmTpType.SRGTXCP);
+                tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+                tpList.add(tempTpBldr.build());
+                // Create CP-RX termination
+                tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-RX");
+                tp1Bldr = new TerminationPoint1Builder();
+                tp1Bldr.setTpType(OpenroadmTpType.SRGRXCP);
+                tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+                tpList.add(tempTpBldr.build());
+                break;
+            case 3:
+                // Ports are bi directional therefore 2 termination points
+                // Create CP-TXRX termination
+                tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-TXRX");
+                tp1Bldr = new TerminationPoint1Builder();
+                tp1Bldr.setTpType(OpenroadmTpType.SRGTXRXCP);
+                tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+                tpList.add(tempTpBldr.build());
+                break;
+            default:
+                LOG.error("No correponsding direction to the value: {}", portDirectionEnum);
+                break;
+        }
+
+        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder tpNode1 =
+            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder();
 
         tpNode1.setTerminationPoint(tpList);
 
         nodebldr.addAugmentation(
-                org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network
-                        .topology.rev150608.Node1.class,
-                tpNode1.build());
+            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1.class,
+            tpNode1.build());
 
         return nodebldr;
     }
@@ -544,7 +570,7 @@ public class OpenRoadmTopology22 {
         InstanceIdentifier<SharedRiskGroup> deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
                 .child(SharedRiskGroup.class, new SharedRiskGroupKey(srgCounter));
         Optional<SharedRiskGroup> ordmSrgObject =
-                deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.CONFIGURATION, deviceIID,
+                deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.OPERATIONAL, deviceIID,
                         Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
         if (ordmSrgObject.isPresent()) {
             if (ordmSrgObject.get().getMaxAddDropPorts() != null) {
@@ -585,7 +611,7 @@ public class OpenRoadmTopology22 {
                 .child(Ports.class, new PortsKey(portName));
         LOG.info("Fetching Port Direction for port {} at circuit pack {}", portName, circuitPackName);
         Optional<Ports> portObject =
-                deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.CONFIGURATION, portIID,
+                deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.OPERATIONAL, portIID,
                         Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
         if (portObject.isPresent()) {
             Ports port = portObject.get();
@@ -640,13 +666,7 @@ public class OpenRoadmTopology22 {
 
                     Link1Builder lnk1Bldr = new Link1Builder();
                     lnk1Bldr.setLinkType(OpenroadmLinkType.EXPRESSLINK);
-                    org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder lnk2Bldr =
-                        new org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder();
-                    lnk2Bldr.setOppositeLink(LinkIdUtil.getOppositeLinkId(srcNode, srcTp, destNode, destTp));
                     expLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    expLinkBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929
-                        .Link1.class, lnk2Bldr.build());
-
                     links.add(expLinkBldr.build());
 
                     // ZtoA direction
@@ -677,13 +697,8 @@ public class OpenRoadmTopology22 {
 
                     Link1Builder lnk1Bldr = new Link1Builder();
                     lnk1Bldr.setLinkType(OpenroadmLinkType.EXPRESSLINK);
-                    org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder lnk2Bldr =
-                        new org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder();
-                    lnk2Bldr.setOppositeLink(LinkIdUtil.getOppositeLinkId(srcNode, srcTp, destNode, destTp));
                     LinkBuilder expLinkBldr = TopologyUtils.createLink(srcNode, destNode, srcTp, destTp);
                     expLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    expLinkBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929
-                        .Link1.class, lnk2Bldr.build());
                     links.add(expLinkBldr.build());
 
                     // ZtoA direction
@@ -696,8 +711,7 @@ public class OpenRoadmTopology22 {
         return links;
     }
 
-    private List<Link> createAddDropLinks(String nodeId, int numOfDegrees, int numOfSrgs,
-                                          int portDirectionEnum) {
+    private List<Link> createAddDropLinks(String nodeId, int numOfDegrees, int numOfSrgs, int portDirectionEnum) {
         LOG.info("creating add-drop links {} {} {} {}", nodeId, numOfDegrees, numOfSrgs, portDirectionEnum);
         List<Link> links = new ArrayList<>();
 
@@ -722,13 +736,8 @@ public class OpenRoadmTopology22 {
 
                     LinkBuilder addDropLinkBldr = TopologyUtils.createLink(srcNode, destNode, srcTp, destTp);
                     Link1Builder lnk1Bldr = new Link1Builder();
-                    org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder lnk2Bldr =
-                        new org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder();
-                    lnk2Bldr.setOppositeLink(LinkIdUtil.getOppositeLinkId(srcNode, srcTp, destNode, destTp));
                     lnk1Bldr.setLinkType(OpenroadmLinkType.DROPLINK);
                     addDropLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    addDropLinkBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links
-                        .rev170929.Link1.class, lnk2Bldr.build());
                     links.add(addDropLinkBldr.build());
 
                     // add links direction
@@ -758,13 +767,8 @@ public class OpenRoadmTopology22 {
 
                     LinkBuilder addDropLinkBldr = TopologyUtils.createLink(srcNode, destNode, srcTp, destTp);
                     Link1Builder lnk1Bldr = new Link1Builder();
-                    org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder lnk2Bldr =
-                        new org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder();
-                    lnk2Bldr.setOppositeLink(LinkIdUtil.getOppositeLinkId(srcNode, srcTp, destNode, destTp));
                     lnk1Bldr.setLinkType(OpenroadmLinkType.DROPLINK);
                     addDropLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    addDropLinkBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links
-                        .rev170929.Link1.class, lnk2Bldr.build());
                     links.add(addDropLinkBldr.build());
 
                     // add link