Update portmapping YANG model
[transportpce.git] / olm / src / test / java / org / opendaylight / transportpce / olm / util / TransactionUtils.java
index 6bc3e58206899670a0532b7ebb6fec987c6ee034..d763707efb9149362d95f04830e6645f234a8196 100644 (file)
@@ -11,50 +11,62 @@ package org.opendaylight.transportpce.olm.util;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.Network;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.NodesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.NodesKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.CpToDegree;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.CpToDegreeBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.Mapping;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.MappingBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.MappingKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.NodeTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder;
-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.Link1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.Network;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.OpenroadmNodeVersion;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegree;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegreeBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegreeKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.nodes.NodeInfoBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLinkKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.SectionElementBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.AmplifiedLinkBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.SpanBuilder;
 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.NodeId;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1Builder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLink;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLinkBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLinkKey;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 public final class TransactionUtils {
 
@@ -62,10 +74,11 @@ public final class TransactionUtils {
 
     }
 
+    @SuppressWarnings("unchecked")
     public static boolean writeTransaction(DataBroker dataBroker, InstanceIdentifier instanceIdentifier,
         DataObject object) {
         ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
-        transaction.put(LogicalDatastoreType.CONFIGURATION, instanceIdentifier, object, true);
+        transaction.put(LogicalDatastoreType.CONFIGURATION, instanceIdentifier, object);
         transaction.commit();// submit(Timeouts.DATASTORE_WRITE, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT).get();
         return true;
     }
@@ -95,74 +108,148 @@ public final class TransactionUtils {
 //    }
 
     public static Network1 getNullNetwork() {
-        Network1 network = new Network1Builder().setLink(null).build();
+        Map<LinkKey, Link> nullMap = null;
+        Network1 network = new Network1Builder().setLink(nullMap).build();
         Optional.of(network);
         return network;
     }
 
     public static Network1 getEmptyNetwork() {
-        Network1 network = new Network1Builder().setLink(new ArrayList<>()).build();
+        Network1 network = new Network1Builder().setLink(Map.of()).build();
+        Optional.of(network);
+        return network;
+    }
+
+    public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network
+            .rev180226.networks.Network getOverLayNetwork() {
+        SupportingNode supportingNode = new SupportingNodeBuilder()
+                .setNodeRef(new NodeId("node 1"))
+                .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+            .build();
+        NodeBuilder node1Builder = new NodeBuilder()
+                .setNodeId(new NodeId("node 1"))
+                .withKey(new NodeKey(new NodeId("node 1")))
+                .setSupportingNode(Map.of(supportingNode.key(),supportingNode));
+        Map<NodeKey,Node> nodes = new HashMap<>();
+        Node node1 = node1Builder.build();
+        nodes.put(node1.key(),node1);
+        SupportingNode supportingNode2 = new SupportingNodeBuilder()
+            .setNodeRef(new NodeId("node 2"))
+            .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+            .build();
+        NodeBuilder node2Builder = new NodeBuilder()
+                .setNodeId(new NodeId("node 2"))
+                .withKey(new NodeKey(new NodeId("node 2")))
+                .setSupportingNode(Map.of(supportingNode2.key(),supportingNode2));
+        Node node2 = node2Builder.build();
+        nodes.put(node2.key(),node2);
+        SupportingNode supportingNode3 = new SupportingNodeBuilder()
+            .setNodeRef(new NodeId("node 3"))
+            .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+            .build();
+        NodeBuilder node3Builder = new NodeBuilder()
+                .setNodeId(new NodeId("node 3"))
+                .withKey(new NodeKey(new NodeId("node 3")))
+                .setSupportingNode(Map.of(supportingNode3.key(),supportingNode3));
+        Node node3 = node3Builder.build();
+        nodes.put(node3.key(),node3);
+        SupportingNode supportingNode4 = new SupportingNodeBuilder()
+            .setNodeRef(new NodeId("node 4"))
+            .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+            .build();
+        NodeBuilder node4Builder = new NodeBuilder()
+                .setNodeId(new NodeId("node 4"))
+                .withKey(new NodeKey(new NodeId("node 4")))
+                .setSupportingNode(Map.of(supportingNode4.key(),supportingNode4));
+        Node node4 = node4Builder.build();
+        nodes.put(node4.key(),node4);
+        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder
+            networkBuilder =
+                new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks
+                    .NetworkBuilder()
+                .setNode(nodes)
+                .setNetworkId(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
+        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network network =
+            networkBuilder.build();
         Optional.of(network);
         return network;
     }
 
     public static Network1 getNetwork() {
-        List<SupportingLink> supportingLinks = new ArrayList<>();
-        SupportingLink supportingLink1 = new SupportingLinkBuilder().setLinkRef("ref1")
-            .setNetworkRef(new NetworkId("net1")).build();
-        SupportingLink supportingLink2 = new SupportingLinkBuilder().setLinkRef("ref2")
-            .setNetworkRef(new NetworkId("net2")).build();
-        supportingLinks.add(supportingLink1);
-        supportingLinks.add(supportingLink2);
-        List<Link> links = new ArrayList<>();
-        Link link1 = new LinkBuilder().setLinkId(new LinkId("link 1"))
-            .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 1"))
-                .setDestTp("dest tp").build())
-            .setSource(new SourceBuilder().setSourceNode(new NodeId("node 2"))
-                .setSourceTp("src tp").build())
-            .setSupportingLink(supportingLinks).build();
+        Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
+        SupportingLink supportingLink1 = new SupportingLinkBuilder()
+                .setLinkRef("ref1")
+                .setNetworkRef(new NetworkId("net1"))
+                .build();
+        SupportingLink supportingLink2 = new SupportingLinkBuilder()
+                .setLinkRef("ref2")
+                .setNetworkRef(new NetworkId("net2"))
+                .build();
+        supportingLinks.put(supportingLink1.key(),supportingLink1);
+        supportingLinks.put(supportingLink2.key(),supportingLink2);
+        Map<LinkKey,Link> links = new HashMap<>();
+        Link link1 = new LinkBuilder()
+                .setLinkId(new LinkId("link 1"))
+                .setDestination(
+                    new DestinationBuilder()
+                        .setDestNode(new NodeId("node 1"))
+                        .setDestTp("dest tp").build())
+                .setSource(
+                    new SourceBuilder()
+                        .setSourceNode(new NodeId("node 2"))
+                        .setSourceTp("src tp")
+                        .build())
+            .setSupportingLink(supportingLinks)
+            .build();
 
-        Link link2 = new LinkBuilder().setLinkId(new LinkId("link 2"))
-            .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 3"))
-                .setDestTp("dest tp").build())
-            .setSource(new SourceBuilder().setSourceNode(new NodeId("node 4"))
-                .setSourceTp("src tp").build())
-            .setSupportingLink(supportingLinks).build();
-        links.add(link1);
-        links.add(link2);
+        Link link2 = new LinkBuilder()
+                .setLinkId(new LinkId("link 2"))
+                .setDestination(
+                    new DestinationBuilder()
+                        .setDestNode(new NodeId("node 3"))
+                        .setDestTp("dest tp")
+                        .build())
+                .setSource(
+                    new SourceBuilder()
+                        .setSourceNode(new NodeId("node 4"))
+                        .setSourceTp("src tp")
+                        .build())
+                .setSupportingLink(supportingLinks)
+                .build();
+        links.put(link1.key(),link1);
+        links.put(link2.key(),link2);
         Network1 network = new Network1Builder().setLink(links).build();
         Optional.of(network);
         return network;
     }
 
     public static Network1 getNetwork2() {
-        List<LinkConcatenation> linkConcentationValues = new ArrayList<>();
+        Map<LinkConcatenationKey,LinkConcatenation> linkConcentationValues = new HashMap<>();
         LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
             .setFiberType(LinkConcatenation.FiberType.Truewave)
             .setPmd(new FiberPmd(BigDecimal.ONE))
-            .setSRLGId(Long.valueOf(1))
-            .setSRLGLength(Long.valueOf(1))
+            .setSRLGId(Uint32.valueOf(1))
+            .setSRLGLength(Uint32.valueOf(1))
             .build();
         LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder()
             .setFiberType(LinkConcatenation.FiberType.Truewave)
             .setPmd(new FiberPmd(BigDecimal.ONE))
-            .setSRLGId(Long.valueOf(1))
-            .setSRLGLength(Long.valueOf(1))
+            .setSRLGId(Uint32.valueOf(1))
+            .setSRLGLength(Uint32.valueOf(1))
             .build();
-        linkConcentationValues.add(linkConcatenation);
-        linkConcentationValues.add(linkConcatenation2);
-        List<org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink>
-            amplifiedLinkValues = new ArrayList<>();
-        org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al = new
-            org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes
-                .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
-                .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link
+        linkConcentationValues.put(linkConcatenation.key(),linkConcatenation);
+        linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2);
+        Map<AmplifiedLinkKey,AmplifiedLink>
+            amplifiedLinkValues = new HashMap<>();
+        org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al =
+            new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes
+                    .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
+                .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
                     .attributes.amplified.link.section.element.section.element.SpanBuilder()
-                        .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link
+                        .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
                                 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
                                     .setAdministrativeState(AdminStates.InService)
                                     .setAutoSpanloss(true)
-                                    .setClfi("clfi")
                                     .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
                                     .setLinkConcatenation(linkConcentationValues)
                                     .setSpanlossBase(new RatioDB(BigDecimal.ONE))
@@ -170,17 +257,16 @@ public final class TransactionUtils {
                                     .build())
                     .build())
                 .build())
-            .setSectionEltNumber(Integer.valueOf(1)).build();
-        org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 = new
-            org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes
+            .setSectionEltNumber(Uint16.valueOf(1)).build();
+        org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al2 = new
+            org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes
                 .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
-                .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link
+                .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
                      .attributes.amplified.link.section.element.section.element.SpanBuilder()
-                        .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link
+                        .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
                                 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
                                     .setAdministrativeState(AdminStates.InService)
                                     .setAutoSpanloss(true)
-                                    .setClfi("clfi")
                                     .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
                                     .setLinkConcatenation(linkConcentationValues)
                                     .setSpanlossBase(new RatioDB(BigDecimal.ONE))
@@ -188,51 +274,41 @@ public final class TransactionUtils {
                                     .build())
                                     .build())
             .build())
-            .setSectionEltNumber(Integer.valueOf(1)).build();
-        amplifiedLinkValues.add(al);
-        amplifiedLinkValues.add(al2);
+            .setSectionEltNumber(Uint16.valueOf(1)).build();
+        amplifiedLinkValues.put(al.key(),al);
+        amplifiedLinkValues.put(al2.key(),al2);
         Map<Class<? extends Augmentation<Link>>, Augmentation<Link>> map = Collections.emptyMap();
-        Augmentation<Link> aug1 = new Link1Builder().setAdministrativeGroup(Long.valueOf(123))
-            .setAdministrativeState(State.InService)
+        Augmentation<Link> aug1 = new Link1Builder()
             .setAmplified(true)
-            .setLinkLatency(Long.valueOf(123))
-            .setLinkLength(BigDecimal.valueOf(123))
-            .setLinkType(OpenroadmLinkType.ROADMTOROADM)
             .setOMSAttributes(new OMSAttributesBuilder()
                 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
-                .setOppositeLink(new LinkId("link 1"))
                 .setSpan(new SpanBuilder().build())
-                .setTEMetric(Long.valueOf(123)).build())
-            .setOperationalState(State.InService).build();
-        Augmentation<Link> aug2 = new Link1Builder().setAdministrativeGroup(Long.valueOf(123))
-            .setAdministrativeState(State.InService)
+                .build())
+            .build();
+        Augmentation<Link> aug2 = new Link1Builder()
             .setAmplified(true)
-            .setLinkLatency(Long.valueOf(123))
-            .setLinkLength(BigDecimal.valueOf(123))
-            .setLinkType(OpenroadmLinkType.ROADMTOROADM)
             .setOMSAttributes(new OMSAttributesBuilder()
                 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
-                .setOppositeLink(new LinkId("link 1"))
                 .setSpan(new SpanBuilder().build())
-                .setTEMetric(Long.valueOf(123)).build())
-            .setOperationalState(State.InService).build();
+                .build())
+            .build();
 
-        List<SupportingLink> supportingLinks = new ArrayList<>();
+        Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
         SupportingLink supportingLink = new SupportingLinkBuilder().setLinkRef("ref1")
             .setNetworkRef(new NetworkId("net1")).build();
         SupportingLink supportingLink2 = new SupportingLinkBuilder().setLinkRef("ref2")
             .setNetworkRef(new NetworkId("net1")).build();
-        supportingLinks.add(supportingLink);
-        supportingLinks.add(supportingLink2);
-        List<Link> links = new ArrayList<>();
+        supportingLinks.put(supportingLink.key(),supportingLink);
+        supportingLinks.put(supportingLink2.key(),supportingLink2);
+        Map<LinkKey,Link> links = new HashMap<>();
         Link link1 = new LinkBuilder().setLinkId(new LinkId("link 1"))
             .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 1"))
                 .setDestTp("dest tp").build())
             .setSource(new SourceBuilder().setSourceNode(new NodeId("node 2"))
                 .setSourceTp("src tp").build())
             .setSupportingLink(supportingLinks)
-            .addAugmentation(Link1.class, aug1)
-            .addAugmentation(Link1.class, aug2).build();
+            .addAugmentation(aug1)
+            .addAugmentation(aug2).build();
 
         Link link2 = new LinkBuilder().setLinkId(new LinkId("link 2"))
             .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 3"))
@@ -240,8 +316,8 @@ public final class TransactionUtils {
             .setSource(new SourceBuilder().setSourceNode(new NodeId("node 4"))
                 .setSourceTp("src tp").build())
             .setSupportingLink(supportingLinks).build();
-        links.add(link1);
-        links.add(link2);
+        links.put(link1.key(),link1);
+        links.put(link2.key(),link2);
         Network1 network = new Network1Builder().setLink(links).build();
         Optional.of(network);
         return network;
@@ -261,18 +337,17 @@ public final class TransactionUtils {
     }
 
     public static Nodes getNodes(String nodeId, String mappingKey) {
-        List<CpToDegree> cpList = new ArrayList<>();
+        Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
         CpToDegree cp1 = new CpToDegreeBuilder()
-            .setCircuitPackName("circuit name")
-            .setDegreeNumber(Long.valueOf(123))
+            .setCircuitPackName("circuit name1")
+            .setDegreeNumber(Uint32.valueOf(123))
             .build();
         CpToDegree cp2 = new CpToDegreeBuilder()
-            .setCircuitPackName("circuit name")
-            .setDegreeNumber(Long.valueOf(123))
+            .setCircuitPackName("circuit name2")
+            .setDegreeNumber(Uint32.valueOf(123))
             .build();
-        cpList.add(cp1);
-        cpList.add(cp2);
-        List<Mapping> mappingList = new ArrayList<>();
+        cpList.put(cp1.key(),cp1);
+        cpList.put(cp2.key(),cp2);
         Mapping map1 = new MappingBuilder()
             .setLogicalConnectionPoint("point")
             .setSupportingCircuitPackName("circuit name")
@@ -281,29 +356,30 @@ public final class TransactionUtils {
             .setSupportingPort("port")
             .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
             .build();
-        mappingList.add(map1);
         Nodes nodes = new NodesBuilder()
             .setNodeId(nodeId)
-            .setNodeType(NodeTypes.Xpdr)
+            .setNodeInfo(new NodeInfoBuilder()
+                .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Xpdr)
+                .setOpenroadmVersion(OpenroadmNodeVersion._121)
+                .build())
             .setCpToDegree(cpList)
-            .setMapping(mappingList)
+            .setMapping(Map.of(map1.key(),map1))
             .build();
         return nodes;
     }
 
     public static Nodes getNodes2(String nodeId, String mappingKey) {
-        List<CpToDegree> cpList = new ArrayList<>();
+        Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
         CpToDegree cp1 = new CpToDegreeBuilder()
-            .setCircuitPackName("circuit name")
-            .setDegreeNumber(Long.valueOf(123))
+            .setCircuitPackName("circuit name1")
+            .setDegreeNumber(Uint32.valueOf(123))
             .build();
         CpToDegree cp2 = new CpToDegreeBuilder()
-            .setCircuitPackName("circuit name")
-            .setDegreeNumber(Long.valueOf(123))
+            .setCircuitPackName("circuit name2")
+            .setDegreeNumber(Uint32.valueOf(123))
             .build();
-        cpList.add(cp1);
-        cpList.add(cp2);
-        List<Mapping> mappingList = new ArrayList<>();
+        cpList.put(cp1.key(),cp1);
+        cpList.put(cp2.key(),cp2);
         Mapping map1 = new MappingBuilder()
             .setLogicalConnectionPoint("point")
             .setSupportingCircuitPackName("circuit name")
@@ -312,29 +388,30 @@ public final class TransactionUtils {
             .setSupportingPort("port")
             .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
             .build();
-        mappingList.add(map1);
         Nodes nodes = new NodesBuilder()
             .setNodeId(nodeId)
-            .setNodeType(null)
+            .setNodeInfo(new NodeInfoBuilder()
+                .setNodeType(null)
+                .setOpenroadmVersion(OpenroadmNodeVersion._121)
+                .build())
             .setCpToDegree(cpList)
-            .setMapping(mappingList)
+            .setMapping(Map.of(map1.key(),map1))
             .build();
         return nodes;
     }
 
     public static Nodes getNodes3(String nodeId, String mappingKey) {
-        List<CpToDegree> cpList = new ArrayList<>();
+        Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
         CpToDegree cp1 = new CpToDegreeBuilder()
-            .setCircuitPackName("circuit name")
-            .setDegreeNumber(Long.valueOf(123))
+            .setCircuitPackName("circuit name1")
+            .setDegreeNumber(Uint32.valueOf(123))
             .build();
         CpToDegree cp2 = new CpToDegreeBuilder()
-            .setCircuitPackName("circuit name")
-            .setDegreeNumber(Long.valueOf(123))
+            .setCircuitPackName("circuit name2")
+            .setDegreeNumber(Uint32.valueOf(123))
             .build();
-        cpList.add(cp1);
-        cpList.add(cp2);
-        List<Mapping> mappingList = new ArrayList<>();
+        cpList.put(cp1.key(),cp1);
+        cpList.put(cp2.key(),cp2);
         Mapping map1 = new MappingBuilder()
             .setLogicalConnectionPoint("point")
             .setSupportingCircuitPackName("circuit name")
@@ -343,12 +420,14 @@ public final class TransactionUtils {
             .setSupportingPort("port")
             .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
             .build();
-        mappingList.add(map1);
         Nodes nodes = new NodesBuilder()
             .setNodeId(nodeId)
-            .setNodeType(NodeTypes.Rdm)
+            .setNodeInfo(new NodeInfoBuilder()
+                .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Rdm)
+                .setOpenroadmVersion(OpenroadmNodeVersion._121)
+                .build())
             .setCpToDegree(cpList)
-            .setMapping(mappingList)
+            .setMapping(Map.of(map1.key(),map1))
             .build();
         return nodes;
     }