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