2 * Copyright © 2018 Orange Systems, Inc. and others. All rights reserved.
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
9 package org.opendaylight.transportpce.olm.util;
11 import java.util.ArrayList;
12 import java.util.HashMap;
13 import java.util.List;
15 import java.util.Optional;
16 import org.opendaylight.mdsal.binding.api.DataBroker;
17 import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
18 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
19 import org.opendaylight.transportpce.common.NetworkUtils;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.Network;
21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.OpenroadmNodeVersion;
22 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.cp.to.degree.CpToDegree;
23 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.cp.to.degree.CpToDegreeBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.cp.to.degree.CpToDegreeKey;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.MappingBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.MappingKey;
28 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.Nodes;
29 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.NodesBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.NodesKey;
31 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.nodes.NodeInfoBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link.attributes.AmplifiedLink;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link.attributes.AmplifiedLinkKey;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link.attributes.amplified.link.SectionElementBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.span.attributes.LinkConcatenation1.FiberType;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.span.attributes.LinkConcatenation1Builder;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.Link1Builder;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.link.OMSAttributesBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.link.oms.attributes.AmplifiedLinkBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.link.oms.attributes.SpanBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.link.concatenation.LinkConcatenation;
45 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.link.concatenation.LinkConcatenationBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.link.concatenation.LinkConcatenationKey;
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.TpId;
58 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
59 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
60 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
61 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
62 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
63 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLink;
64 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLinkBuilder;
65 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLinkKey;
66 import org.opendaylight.yangtools.yang.binding.Augmentation;
67 import org.opendaylight.yangtools.yang.binding.DataObject;
68 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
69 import org.opendaylight.yangtools.yang.common.Decimal64;
70 import org.opendaylight.yangtools.yang.common.Uint16;
71 import org.opendaylight.yangtools.yang.common.Uint32;
73 public final class TransactionUtils {
75 private TransactionUtils() {
79 @SuppressWarnings({"unchecked","rawtypes"})
80 // FIXME check if the InstanceIdentifier raw type can be avoided
81 // Raw types use are discouraged since they lack type safety.
82 // Resulting Problems are observed at run time and not at compile time
83 public static boolean writeTransaction(DataBroker dataBroker, InstanceIdentifier instanceIdentifier,
85 ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
86 transaction.put(LogicalDatastoreType.CONFIGURATION, instanceIdentifier, object);
87 transaction.commit();// submit(Timeouts.DATASTORE_WRITE, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT).get();
92 // public static boolean writeTransaction(DataBroker dataBroker, LogicalDatastoreType logicalDatastoreType,
93 // InstanceIdentifier instanceIdentifier,
96 // public static DataObject readTransaction(DeviceTransactionManager deviceTransactionManager,
98 // LogicalDatastoreType logicalDatastoreType,
99 // InstanceIdentifier<? extends DataObject> instanceIdentifier)
100 // throws ExecutionException, InterruptedException {
101 // Future<Optional<DeviceTransaction>> deviceTxFuture =
102 // deviceTransactionManager.getDeviceTransaction(nodeId);
103 // if (!deviceTxFuture.get().isPresent()) {
106 // DeviceTransaction deviceTx = deviceTxFuture.get().get();
107 // com.google.common.base.Optional<? extends DataObject> readOpt
108 // = deviceTx.read(logicalDatastoreType, instanceIdentifier).get();
109 // if (!readOpt.isPresent()) {
112 // return readOpt.get();
115 public static Network1 getNullNetwork() {
116 Map<LinkKey, Link> nullMap = null;
117 Network1 network = new Network1Builder().setLink(nullMap).build();
118 Optional.of(network);
122 public static Network1 getEmptyNetwork() {
123 Network1 network = new Network1Builder().setLink(Map.of()).build();
124 Optional.of(network);
128 public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network
129 .rev180226.networks.Network getOverLayNetwork() {
130 SupportingNode supportingNode = new SupportingNodeBuilder()
131 .setNodeRef(new NodeId("node 1"))
132 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
134 NodeBuilder node1Builder = new NodeBuilder()
135 .setNodeId(new NodeId("node 1"))
136 .withKey(new NodeKey(new NodeId("node 1")))
137 .setSupportingNode(Map.of(supportingNode.key(),supportingNode));
138 Map<NodeKey,Node> nodes = new HashMap<>();
139 Node node1 = node1Builder.build();
140 nodes.put(node1.key(),node1);
141 SupportingNode supportingNode2 = new SupportingNodeBuilder()
142 .setNodeRef(new NodeId("node 2"))
143 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
145 NodeBuilder node2Builder = new NodeBuilder()
146 .setNodeId(new NodeId("node 2"))
147 .withKey(new NodeKey(new NodeId("node 2")))
148 .setSupportingNode(Map.of(supportingNode2.key(),supportingNode2));
149 Node node2 = node2Builder.build();
150 nodes.put(node2.key(),node2);
151 SupportingNode supportingNode3 = new SupportingNodeBuilder()
152 .setNodeRef(new NodeId("node 3"))
153 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
155 NodeBuilder node3Builder = new NodeBuilder()
156 .setNodeId(new NodeId("node 3"))
157 .withKey(new NodeKey(new NodeId("node 3")))
158 .setSupportingNode(Map.of(supportingNode3.key(),supportingNode3));
159 Node node3 = node3Builder.build();
160 nodes.put(node3.key(),node3);
161 SupportingNode supportingNode4 = new SupportingNodeBuilder()
162 .setNodeRef(new NodeId("node 4"))
163 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
165 NodeBuilder node4Builder = new NodeBuilder()
166 .setNodeId(new NodeId("node 4"))
167 .withKey(new NodeKey(new NodeId("node 4")))
168 .setSupportingNode(Map.of(supportingNode4.key(),supportingNode4));
169 Node node4 = node4Builder.build();
170 nodes.put(node4.key(),node4);
171 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder
173 new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks
176 .setNetworkId(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
177 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network network =
178 networkBuilder.build();
179 Optional.of(network);
183 public static Network1 getNetwork() {
184 Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
185 SupportingLink supportingLink1 = new SupportingLinkBuilder()
186 .setLinkRef(new LinkId("ref1"))
187 .setNetworkRef(new NetworkId("net1"))
189 SupportingLink supportingLink2 = new SupportingLinkBuilder()
190 .setLinkRef(new LinkId("ref2"))
191 .setNetworkRef(new NetworkId("net2"))
193 supportingLinks.put(supportingLink1.key(),supportingLink1);
194 supportingLinks.put(supportingLink2.key(),supportingLink2);
195 Map<LinkKey,Link> links = new HashMap<>();
196 Link link1 = new LinkBuilder()
197 .setLinkId(new LinkId("link 1"))
199 new DestinationBuilder()
200 .setDestNode(new NodeId("node 1"))
201 .setDestTp(new TpId("dest tp")).build())
204 .setSourceNode(new NodeId("node 2"))
205 .setSourceTp(new TpId("src tp"))
207 .setSupportingLink(supportingLinks)
210 Link link2 = new LinkBuilder()
211 .setLinkId(new LinkId("link 2"))
213 new DestinationBuilder()
214 .setDestNode(new NodeId("node 3"))
215 .setDestTp(new TpId("dest tp"))
219 .setSourceNode(new NodeId("node 4"))
220 .setSourceTp(new TpId("src tp"))
222 .setSupportingLink(supportingLinks)
224 links.put(link1.key(),link1);
225 links.put(link2.key(),link2);
226 Network1 network = new Network1Builder().setLink(links).build();
227 Optional.of(network);
231 public static Network1 getNetwork2() {
232 Map<LinkConcatenationKey,LinkConcatenation> linkConcentationValues = new HashMap<>();
233 LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
234 .addAugmentation(new LinkConcatenation1Builder()
235 .setFiberType(FiberType.Truewave)
236 .setPmd(new FiberPmd(Decimal64.valueOf("1")))
238 .setSRLGId(Uint32.valueOf(1))
239 .setSRLGLength(Decimal64.valueOf("1"))
241 LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder()
242 .addAugmentation(new LinkConcatenation1Builder()
243 .setFiberType(FiberType.Truewave)
244 .setPmd(new FiberPmd(Decimal64.valueOf("1")))
246 .setSRLGId(Uint32.valueOf(1))
247 .setSRLGLength(Decimal64.valueOf("1"))
249 linkConcentationValues.put(linkConcatenation.key(),linkConcatenation);
250 linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2);
251 Map<AmplifiedLinkKey,AmplifiedLink>
252 amplifiedLinkValues = new HashMap<>();
253 org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link.attributes.AmplifiedLink al =
254 new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link.attributes
255 .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
256 .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link
257 .attributes.amplified.link.section.element.section.element.SpanBuilder()
258 .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link
259 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
260 .setAdministrativeState(AdminStates.InService)
261 .setAutoSpanloss(true)
262 .setEngineeredSpanloss(new RatioDB(Decimal64.valueOf("1")))
263 .setLinkConcatenation(linkConcentationValues)
264 .setSpanlossBase(new RatioDB(Decimal64.valueOf("1")))
265 .setSpanlossCurrent(new RatioDB(Decimal64.valueOf("1")))
269 .setSectionEltNumber(Uint16.valueOf(1)).build();
270 org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link.attributes.AmplifiedLink al2 = new
271 org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link.attributes
272 .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
273 .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link
274 .attributes.amplified.link.section.element.section.element.SpanBuilder()
275 .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev230526.amplified.link
276 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
277 .setAdministrativeState(AdminStates.InService)
278 .setAutoSpanloss(true)
279 .setEngineeredSpanloss(new RatioDB(Decimal64.valueOf("1")))
280 .setLinkConcatenation(linkConcentationValues)
281 .setSpanlossBase(new RatioDB(Decimal64.valueOf("1")))
282 .setSpanlossCurrent(new RatioDB(Decimal64.valueOf("1")))
286 .setSectionEltNumber(Uint16.valueOf(1)).build();
287 amplifiedLinkValues.put(al.key(),al);
288 amplifiedLinkValues.put(al2.key(),al2);
289 Augmentation<Link> aug1 = new Link1Builder()
291 .setOMSAttributes(new OMSAttributesBuilder()
292 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
293 .setSpan(new SpanBuilder().build())
296 Augmentation<Link> aug2 = new Link1Builder()
298 .setOMSAttributes(new OMSAttributesBuilder()
299 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
300 .setSpan(new SpanBuilder().build())
304 Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
305 SupportingLink supportingLink = new SupportingLinkBuilder().setLinkRef(new LinkId("ref1"))
306 .setNetworkRef(new NetworkId("net1")).build();
307 SupportingLink supportingLink2 = new SupportingLinkBuilder().setLinkRef(new LinkId("ref2"))
308 .setNetworkRef(new NetworkId("net1")).build();
309 supportingLinks.put(supportingLink.key(),supportingLink);
310 supportingLinks.put(supportingLink2.key(),supportingLink2);
311 Map<LinkKey,Link> links = new HashMap<>();
312 Link link1 = new LinkBuilder().setLinkId(new LinkId("link 1"))
313 .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 1"))
314 .setDestTp(new TpId("dest tp")).build())
315 .setSource(new SourceBuilder().setSourceNode(new NodeId("node 2"))
316 .setSourceTp(new TpId("src tp")).build())
317 .setSupportingLink(supportingLinks)
318 .addAugmentation(aug1)
319 .addAugmentation(aug2).build();
321 Link link2 = new LinkBuilder().setLinkId(new LinkId("link 2"))
322 .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 3"))
323 .setDestTp(new TpId("dest tp")).build())
324 .setSource(new SourceBuilder().setSourceNode(new NodeId("node 4"))
325 .setSourceTp(new TpId("src tp")).build())
326 .setSupportingLink(supportingLinks).build();
327 links.put(link1.key(),link1);
328 links.put(link2.key(),link2);
329 Network1 network = new Network1Builder().setLink(links).build();
330 Optional.of(network);
334 public static List<NodeId> getNodeIds() {
335 List<NodeId> nodes = new ArrayList<>();
336 NodeId node = new NodeId("node 1");
337 NodeId node2 = new NodeId("node 1");
338 NodeId node3 = new NodeId("node 1");
339 NodeId node4 = new NodeId("node 1");
347 public static Nodes getNodes(String nodeId, String mappingKey) {
348 Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
349 CpToDegree cp1 = new CpToDegreeBuilder()
350 .setCircuitPackName("circuit name1")
351 .setDegreeNumber(Uint32.valueOf(123))
353 CpToDegree cp2 = new CpToDegreeBuilder()
354 .setCircuitPackName("circuit name2")
355 .setDegreeNumber(Uint32.valueOf(123))
357 cpList.put(cp1.key(),cp1);
358 cpList.put(cp2.key(),cp2);
359 Mapping map1 = new MappingBuilder()
360 .setLogicalConnectionPoint("point")
361 .setSupportingCircuitPackName("circuit name")
362 .setSupportingOms("oms")
363 .setSupportingOts("ots")
364 .setSupportingPort("port")
365 .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
367 return new NodesBuilder()
369 .setNodeInfo(new NodeInfoBuilder()
370 .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Xpdr)
371 .setOpenroadmVersion(OpenroadmNodeVersion._121)
373 .setCpToDegree(cpList)
374 .setMapping(Map.of(map1.key(),map1))
378 public static Nodes getNodes2(String nodeId, String mappingKey) {
379 Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
380 CpToDegree cp1 = new CpToDegreeBuilder()
381 .setCircuitPackName("circuit name1")
382 .setDegreeNumber(Uint32.valueOf(123))
384 CpToDegree cp2 = new CpToDegreeBuilder()
385 .setCircuitPackName("circuit name2")
386 .setDegreeNumber(Uint32.valueOf(123))
388 cpList.put(cp1.key(),cp1);
389 cpList.put(cp2.key(),cp2);
390 Mapping map1 = new MappingBuilder()
391 .setLogicalConnectionPoint("point")
392 .setSupportingCircuitPackName("circuit name")
393 .setSupportingOms("oms")
394 .setSupportingOts("ots")
395 .setSupportingPort("port")
396 .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
398 return new NodesBuilder()
400 .setNodeInfo(new NodeInfoBuilder()
402 .setOpenroadmVersion(OpenroadmNodeVersion._121)
404 .setCpToDegree(cpList)
405 .setMapping(Map.of(map1.key(),map1))
409 public static Nodes getNodes3(String nodeId, String mappingKey) {
410 Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
411 CpToDegree cp1 = new CpToDegreeBuilder()
412 .setCircuitPackName("circuit name1")
413 .setDegreeNumber(Uint32.valueOf(123))
415 CpToDegree cp2 = new CpToDegreeBuilder()
416 .setCircuitPackName("circuit name2")
417 .setDegreeNumber(Uint32.valueOf(123))
419 cpList.put(cp1.key(),cp1);
420 cpList.put(cp2.key(),cp2);
421 Mapping map1 = new MappingBuilder()
422 .setLogicalConnectionPoint("point")
423 .setSupportingCircuitPackName("circuit name")
424 .setSupportingOms("oms")
425 .setSupportingOts("ots")
426 .setSupportingPort("port")
427 .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
429 return new NodesBuilder()
431 .setNodeInfo(new NodeInfoBuilder()
432 .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Rdm)
433 .setOpenroadmVersion(OpenroadmNodeVersion._121)
435 .setCpToDegree(cpList)
436 .setMapping(Map.of(map1.key(),map1))
440 public static void writeNodeTransaction(String nodeId, DataBroker dataBroker, String mappingKey) {
441 InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
442 .child(Nodes.class, new NodesKey(nodeId));
443 Nodes nodes = getNodes(nodeId, mappingKey);
444 writeTransaction(dataBroker, nodesIID, nodes);
447 public static void writeNodeTransaction2(String nodeId, DataBroker dataBroker, String mappingKey) {
448 InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
449 .child(Nodes.class, new NodesKey(nodeId));
450 Nodes nodes = getNodes2(nodeId, mappingKey);
451 writeTransaction(dataBroker, nodesIID, nodes);
454 public static void writeNodeTransaction3(String nodeId, DataBroker dataBroker, String mappingKey) {
455 InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
456 .child(Nodes.class, new NodesKey(nodeId));
457 Nodes nodes = getNodes3(nodeId, mappingKey);
458 writeTransaction(dataBroker, nodesIID, nodes);