Update portmapping YANG model
[transportpce.git] / olm / src / test / java / org / opendaylight / transportpce / olm / util / TransactionUtils.java
1 /*
2  * Copyright © 2018 Orange Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.transportpce.olm.util;
10
11 import java.math.BigDecimal;
12 import java.util.ArrayList;
13 import java.util.Collections;
14 import java.util.HashMap;
15 import java.util.List;
16 import java.util.Map;
17 import java.util.Optional;
18 import org.opendaylight.mdsal.binding.api.DataBroker;
19 import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
20 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
21 import org.opendaylight.transportpce.common.NetworkUtils;
22 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.Network;
23 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.OpenroadmNodeVersion;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegree;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegreeBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.cp.to.degree.CpToDegreeKey;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.Mapping;
28 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingKey;
30 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.Nodes;
31 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesKey;
33 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.nodes.NodeInfoBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLinkKey;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.SectionElementBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey;
43 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder;
44 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributesBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.AmplifiedLinkBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.SpanBuilder;
47 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
50 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
51 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
52 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
53 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
54 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
55 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1;
56 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1Builder;
57 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
58 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
59 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
60 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
61 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
62 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLink;
63 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLinkBuilder;
64 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLinkKey;
65 import org.opendaylight.yangtools.yang.binding.Augmentation;
66 import org.opendaylight.yangtools.yang.binding.DataObject;
67 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
68 import org.opendaylight.yangtools.yang.common.Uint16;
69 import org.opendaylight.yangtools.yang.common.Uint32;
70
71 public final class TransactionUtils {
72
73     private TransactionUtils() {
74
75     }
76
77     @SuppressWarnings("unchecked")
78     public static boolean writeTransaction(DataBroker dataBroker, InstanceIdentifier instanceIdentifier,
79         DataObject object) {
80         ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
81         transaction.put(LogicalDatastoreType.CONFIGURATION, instanceIdentifier, object);
82         transaction.commit();// submit(Timeouts.DATASTORE_WRITE, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT).get();
83         return true;
84     }
85
86 //
87 //    public static boolean writeTransaction(DataBroker dataBroker, LogicalDatastoreType logicalDatastoreType,
88 //        InstanceIdentifier instanceIdentifier,
89 //        DataObject object)
90
91 //    public static DataObject readTransaction(DeviceTransactionManager deviceTransactionManager,
92 //                                  String nodeId,
93 //                                  LogicalDatastoreType logicalDatastoreType,
94 //                                  InstanceIdentifier<? extends DataObject> instanceIdentifier)
95 //            throws ExecutionException, InterruptedException {
96 //        Future<Optional<DeviceTransaction>> deviceTxFuture =
97 //                deviceTransactionManager.getDeviceTransaction(nodeId);
98 //        if (!deviceTxFuture.get().isPresent()) {
99 //            return null;
100 //        }
101 //        DeviceTransaction deviceTx = deviceTxFuture.get().get();
102 //        com.google.common.base.Optional<? extends DataObject> readOpt
103 //                = deviceTx.read(logicalDatastoreType, instanceIdentifier).get();
104 //        if (!readOpt.isPresent()) {
105 //            return null;
106 //        }
107 //        return readOpt.get();
108 //    }
109
110     public static Network1 getNullNetwork() {
111         Map<LinkKey, Link> nullMap = null;
112         Network1 network = new Network1Builder().setLink(nullMap).build();
113         Optional.of(network);
114         return network;
115     }
116
117     public static Network1 getEmptyNetwork() {
118         Network1 network = new Network1Builder().setLink(Map.of()).build();
119         Optional.of(network);
120         return network;
121     }
122
123     public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network
124             .rev180226.networks.Network getOverLayNetwork() {
125         SupportingNode supportingNode = new SupportingNodeBuilder()
126                 .setNodeRef(new NodeId("node 1"))
127                 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
128             .build();
129         NodeBuilder node1Builder = new NodeBuilder()
130                 .setNodeId(new NodeId("node 1"))
131                 .withKey(new NodeKey(new NodeId("node 1")))
132                 .setSupportingNode(Map.of(supportingNode.key(),supportingNode));
133         Map<NodeKey,Node> nodes = new HashMap<>();
134         Node node1 = node1Builder.build();
135         nodes.put(node1.key(),node1);
136         SupportingNode supportingNode2 = new SupportingNodeBuilder()
137             .setNodeRef(new NodeId("node 2"))
138             .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
139             .build();
140         NodeBuilder node2Builder = new NodeBuilder()
141                 .setNodeId(new NodeId("node 2"))
142                 .withKey(new NodeKey(new NodeId("node 2")))
143                 .setSupportingNode(Map.of(supportingNode2.key(),supportingNode2));
144         Node node2 = node2Builder.build();
145         nodes.put(node2.key(),node2);
146         SupportingNode supportingNode3 = new SupportingNodeBuilder()
147             .setNodeRef(new NodeId("node 3"))
148             .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
149             .build();
150         NodeBuilder node3Builder = new NodeBuilder()
151                 .setNodeId(new NodeId("node 3"))
152                 .withKey(new NodeKey(new NodeId("node 3")))
153                 .setSupportingNode(Map.of(supportingNode3.key(),supportingNode3));
154         Node node3 = node3Builder.build();
155         nodes.put(node3.key(),node3);
156         SupportingNode supportingNode4 = new SupportingNodeBuilder()
157             .setNodeRef(new NodeId("node 4"))
158             .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
159             .build();
160         NodeBuilder node4Builder = new NodeBuilder()
161                 .setNodeId(new NodeId("node 4"))
162                 .withKey(new NodeKey(new NodeId("node 4")))
163                 .setSupportingNode(Map.of(supportingNode4.key(),supportingNode4));
164         Node node4 = node4Builder.build();
165         nodes.put(node4.key(),node4);
166         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder
167             networkBuilder =
168                 new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks
169                     .NetworkBuilder()
170                 .setNode(nodes)
171                 .setNetworkId(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
172         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network network =
173             networkBuilder.build();
174         Optional.of(network);
175         return network;
176     }
177
178     public static Network1 getNetwork() {
179         Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
180         SupportingLink supportingLink1 = new SupportingLinkBuilder()
181                 .setLinkRef("ref1")
182                 .setNetworkRef(new NetworkId("net1"))
183                 .build();
184         SupportingLink supportingLink2 = new SupportingLinkBuilder()
185                 .setLinkRef("ref2")
186                 .setNetworkRef(new NetworkId("net2"))
187                 .build();
188         supportingLinks.put(supportingLink1.key(),supportingLink1);
189         supportingLinks.put(supportingLink2.key(),supportingLink2);
190         Map<LinkKey,Link> links = new HashMap<>();
191         Link link1 = new LinkBuilder()
192                 .setLinkId(new LinkId("link 1"))
193                 .setDestination(
194                     new DestinationBuilder()
195                         .setDestNode(new NodeId("node 1"))
196                         .setDestTp("dest tp").build())
197                 .setSource(
198                     new SourceBuilder()
199                         .setSourceNode(new NodeId("node 2"))
200                         .setSourceTp("src tp")
201                         .build())
202             .setSupportingLink(supportingLinks)
203             .build();
204
205         Link link2 = new LinkBuilder()
206                 .setLinkId(new LinkId("link 2"))
207                 .setDestination(
208                     new DestinationBuilder()
209                         .setDestNode(new NodeId("node 3"))
210                         .setDestTp("dest tp")
211                         .build())
212                 .setSource(
213                     new SourceBuilder()
214                         .setSourceNode(new NodeId("node 4"))
215                         .setSourceTp("src tp")
216                         .build())
217                 .setSupportingLink(supportingLinks)
218                 .build();
219         links.put(link1.key(),link1);
220         links.put(link2.key(),link2);
221         Network1 network = new Network1Builder().setLink(links).build();
222         Optional.of(network);
223         return network;
224     }
225
226     public static Network1 getNetwork2() {
227         Map<LinkConcatenationKey,LinkConcatenation> linkConcentationValues = new HashMap<>();
228         LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
229             .setFiberType(LinkConcatenation.FiberType.Truewave)
230             .setPmd(new FiberPmd(BigDecimal.ONE))
231             .setSRLGId(Uint32.valueOf(1))
232             .setSRLGLength(Uint32.valueOf(1))
233             .build();
234         LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder()
235             .setFiberType(LinkConcatenation.FiberType.Truewave)
236             .setPmd(new FiberPmd(BigDecimal.ONE))
237             .setSRLGId(Uint32.valueOf(1))
238             .setSRLGLength(Uint32.valueOf(1))
239             .build();
240         linkConcentationValues.put(linkConcatenation.key(),linkConcatenation);
241         linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2);
242         Map<AmplifiedLinkKey,AmplifiedLink>
243             amplifiedLinkValues = new HashMap<>();
244         org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al =
245             new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes
246                     .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
247                 .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
248                     .attributes.amplified.link.section.element.section.element.SpanBuilder()
249                         .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
250                                 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
251                                     .setAdministrativeState(AdminStates.InService)
252                                     .setAutoSpanloss(true)
253                                     .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
254                                     .setLinkConcatenation(linkConcentationValues)
255                                     .setSpanlossBase(new RatioDB(BigDecimal.ONE))
256                                     .setSpanlossCurrent(new RatioDB(BigDecimal.ONE))
257                                     .build())
258                     .build())
259                 .build())
260             .setSectionEltNumber(Uint16.valueOf(1)).build();
261         org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al2 = new
262             org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes
263                 .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
264                 .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
265                      .attributes.amplified.link.section.element.section.element.SpanBuilder()
266                         .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
267                                 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
268                                     .setAdministrativeState(AdminStates.InService)
269                                     .setAutoSpanloss(true)
270                                     .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
271                                     .setLinkConcatenation(linkConcentationValues)
272                                     .setSpanlossBase(new RatioDB(BigDecimal.ONE))
273                                     .setSpanlossCurrent(new RatioDB(BigDecimal.ONE))
274                                     .build())
275                                     .build())
276             .build())
277             .setSectionEltNumber(Uint16.valueOf(1)).build();
278         amplifiedLinkValues.put(al.key(),al);
279         amplifiedLinkValues.put(al2.key(),al2);
280         Map<Class<? extends Augmentation<Link>>, Augmentation<Link>> map = Collections.emptyMap();
281         Augmentation<Link> aug1 = new Link1Builder()
282             .setAmplified(true)
283             .setOMSAttributes(new OMSAttributesBuilder()
284                 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
285                 .setSpan(new SpanBuilder().build())
286                 .build())
287             .build();
288         Augmentation<Link> aug2 = new Link1Builder()
289             .setAmplified(true)
290             .setOMSAttributes(new OMSAttributesBuilder()
291                 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
292                 .setSpan(new SpanBuilder().build())
293                 .build())
294             .build();
295
296         Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
297         SupportingLink supportingLink = new SupportingLinkBuilder().setLinkRef("ref1")
298             .setNetworkRef(new NetworkId("net1")).build();
299         SupportingLink supportingLink2 = new SupportingLinkBuilder().setLinkRef("ref2")
300             .setNetworkRef(new NetworkId("net1")).build();
301         supportingLinks.put(supportingLink.key(),supportingLink);
302         supportingLinks.put(supportingLink2.key(),supportingLink2);
303         Map<LinkKey,Link> links = new HashMap<>();
304         Link link1 = new LinkBuilder().setLinkId(new LinkId("link 1"))
305             .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 1"))
306                 .setDestTp("dest tp").build())
307             .setSource(new SourceBuilder().setSourceNode(new NodeId("node 2"))
308                 .setSourceTp("src tp").build())
309             .setSupportingLink(supportingLinks)
310             .addAugmentation(aug1)
311             .addAugmentation(aug2).build();
312
313         Link link2 = new LinkBuilder().setLinkId(new LinkId("link 2"))
314             .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 3"))
315                 .setDestTp("dest tp").build())
316             .setSource(new SourceBuilder().setSourceNode(new NodeId("node 4"))
317                 .setSourceTp("src tp").build())
318             .setSupportingLink(supportingLinks).build();
319         links.put(link1.key(),link1);
320         links.put(link2.key(),link2);
321         Network1 network = new Network1Builder().setLink(links).build();
322         Optional.of(network);
323         return network;
324     }
325
326     public static List<NodeId> getNodeIds() {
327         List<NodeId> nodes = new ArrayList<>();
328         NodeId node = new NodeId("node 1");
329         NodeId node2 = new NodeId("node 1");
330         NodeId node3 = new NodeId("node 1");
331         NodeId node4 = new NodeId("node 1");
332         nodes.add(node);
333         nodes.add(node2);
334         nodes.add(node3);
335         nodes.add(node4);
336         return nodes;
337     }
338
339     public static Nodes getNodes(String nodeId, String mappingKey) {
340         Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
341         CpToDegree cp1 = new CpToDegreeBuilder()
342             .setCircuitPackName("circuit name1")
343             .setDegreeNumber(Uint32.valueOf(123))
344             .build();
345         CpToDegree cp2 = new CpToDegreeBuilder()
346             .setCircuitPackName("circuit name2")
347             .setDegreeNumber(Uint32.valueOf(123))
348             .build();
349         cpList.put(cp1.key(),cp1);
350         cpList.put(cp2.key(),cp2);
351         Mapping map1 = new MappingBuilder()
352             .setLogicalConnectionPoint("point")
353             .setSupportingCircuitPackName("circuit name")
354             .setSupportingOms("oms")
355             .setSupportingOts("ots")
356             .setSupportingPort("port")
357             .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
358             .build();
359         Nodes nodes = new NodesBuilder()
360             .setNodeId(nodeId)
361             .setNodeInfo(new NodeInfoBuilder()
362                 .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Xpdr)
363                 .setOpenroadmVersion(OpenroadmNodeVersion._121)
364                 .build())
365             .setCpToDegree(cpList)
366             .setMapping(Map.of(map1.key(),map1))
367             .build();
368         return nodes;
369     }
370
371     public static Nodes getNodes2(String nodeId, String mappingKey) {
372         Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
373         CpToDegree cp1 = new CpToDegreeBuilder()
374             .setCircuitPackName("circuit name1")
375             .setDegreeNumber(Uint32.valueOf(123))
376             .build();
377         CpToDegree cp2 = new CpToDegreeBuilder()
378             .setCircuitPackName("circuit name2")
379             .setDegreeNumber(Uint32.valueOf(123))
380             .build();
381         cpList.put(cp1.key(),cp1);
382         cpList.put(cp2.key(),cp2);
383         Mapping map1 = new MappingBuilder()
384             .setLogicalConnectionPoint("point")
385             .setSupportingCircuitPackName("circuit name")
386             .setSupportingOms("oms")
387             .setSupportingOts("ots")
388             .setSupportingPort("port")
389             .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
390             .build();
391         Nodes nodes = new NodesBuilder()
392             .setNodeId(nodeId)
393             .setNodeInfo(new NodeInfoBuilder()
394                 .setNodeType(null)
395                 .setOpenroadmVersion(OpenroadmNodeVersion._121)
396                 .build())
397             .setCpToDegree(cpList)
398             .setMapping(Map.of(map1.key(),map1))
399             .build();
400         return nodes;
401     }
402
403     public static Nodes getNodes3(String nodeId, String mappingKey) {
404         Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
405         CpToDegree cp1 = new CpToDegreeBuilder()
406             .setCircuitPackName("circuit name1")
407             .setDegreeNumber(Uint32.valueOf(123))
408             .build();
409         CpToDegree cp2 = new CpToDegreeBuilder()
410             .setCircuitPackName("circuit name2")
411             .setDegreeNumber(Uint32.valueOf(123))
412             .build();
413         cpList.put(cp1.key(),cp1);
414         cpList.put(cp2.key(),cp2);
415         Mapping map1 = new MappingBuilder()
416             .setLogicalConnectionPoint("point")
417             .setSupportingCircuitPackName("circuit name")
418             .setSupportingOms("oms")
419             .setSupportingOts("ots")
420             .setSupportingPort("port")
421             .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
422             .build();
423         Nodes nodes = new NodesBuilder()
424             .setNodeId(nodeId)
425             .setNodeInfo(new NodeInfoBuilder()
426                 .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Rdm)
427                 .setOpenroadmVersion(OpenroadmNodeVersion._121)
428                 .build())
429             .setCpToDegree(cpList)
430             .setMapping(Map.of(map1.key(),map1))
431             .build();
432         return nodes;
433     }
434
435     public static void writeNodeTransaction(String nodeId, DataBroker dataBroker, String mappingKey) {
436         InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
437             .child(Nodes.class, new NodesKey(nodeId));
438         Nodes nodes = getNodes(nodeId, mappingKey);
439         writeTransaction(dataBroker, nodesIID, nodes);
440     }
441
442     public static void writeNodeTransaction2(String nodeId, DataBroker dataBroker, String mappingKey) {
443         InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
444             .child(Nodes.class, new NodesKey(nodeId));
445         Nodes nodes = getNodes2(nodeId, mappingKey);
446         writeTransaction(dataBroker, nodesIID, nodes);
447     }
448
449     public static void writeNodeTransaction3(String nodeId, DataBroker dataBroker, String mappingKey) {
450         InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
451             .child(Nodes.class, new NodesKey(nodeId));
452         Nodes nodes = getNodes3(nodeId, mappingKey);
453         writeTransaction(dataBroker, nodesIID, nodes);
454     }
455
456 }