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.math.BigDecimal;
12 import java.util.ArrayList;
13 import java.util.Collections;
14 import java.util.HashMap;
15 import java.util.List;
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.rev210927.Network;
23 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.OpenroadmNodeVersion;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.cp.to.degree.CpToDegree;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.cp.to.degree.CpToDegreeBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.cp.to.degree.CpToDegreeKey;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.mapping.Mapping;
28 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.mapping.MappingBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.mapping.MappingKey;
30 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.network.Nodes;
31 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.network.NodesBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.network.NodesKey;
33 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210927.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.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.Uint16;
70 import org.opendaylight.yangtools.yang.common.Uint32;
72 public final class TransactionUtils {
74 private TransactionUtils() {
78 @SuppressWarnings({"unchecked","rawtypes"})
79 // FIXME check if the InstanceIdentifier raw type can be avoided
80 // Raw types use are discouraged since they lack type safety.
81 // Resulting Problems are observed at run time and not at compile time
82 public static boolean writeTransaction(DataBroker dataBroker, InstanceIdentifier instanceIdentifier,
84 ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
85 transaction.put(LogicalDatastoreType.CONFIGURATION, instanceIdentifier, object);
86 transaction.commit();// submit(Timeouts.DATASTORE_WRITE, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT).get();
91 // public static boolean writeTransaction(DataBroker dataBroker, LogicalDatastoreType logicalDatastoreType,
92 // InstanceIdentifier instanceIdentifier,
95 // public static DataObject readTransaction(DeviceTransactionManager deviceTransactionManager,
97 // LogicalDatastoreType logicalDatastoreType,
98 // InstanceIdentifier<? extends DataObject> instanceIdentifier)
99 // throws ExecutionException, InterruptedException {
100 // Future<Optional<DeviceTransaction>> deviceTxFuture =
101 // deviceTransactionManager.getDeviceTransaction(nodeId);
102 // if (!deviceTxFuture.get().isPresent()) {
105 // DeviceTransaction deviceTx = deviceTxFuture.get().get();
106 // com.google.common.base.Optional<? extends DataObject> readOpt
107 // = deviceTx.read(logicalDatastoreType, instanceIdentifier).get();
108 // if (!readOpt.isPresent()) {
111 // return readOpt.get();
114 public static Network1 getNullNetwork() {
115 Map<LinkKey, Link> nullMap = null;
116 Network1 network = new Network1Builder().setLink(nullMap).build();
117 Optional.of(network);
121 public static Network1 getEmptyNetwork() {
122 Network1 network = new Network1Builder().setLink(Map.of()).build();
123 Optional.of(network);
127 public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network
128 .rev180226.networks.Network getOverLayNetwork() {
129 SupportingNode supportingNode = new SupportingNodeBuilder()
130 .setNodeRef(new NodeId("node 1"))
131 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
133 NodeBuilder node1Builder = new NodeBuilder()
134 .setNodeId(new NodeId("node 1"))
135 .withKey(new NodeKey(new NodeId("node 1")))
136 .setSupportingNode(Map.of(supportingNode.key(),supportingNode));
137 Map<NodeKey,Node> nodes = new HashMap<>();
138 Node node1 = node1Builder.build();
139 nodes.put(node1.key(),node1);
140 SupportingNode supportingNode2 = new SupportingNodeBuilder()
141 .setNodeRef(new NodeId("node 2"))
142 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
144 NodeBuilder node2Builder = new NodeBuilder()
145 .setNodeId(new NodeId("node 2"))
146 .withKey(new NodeKey(new NodeId("node 2")))
147 .setSupportingNode(Map.of(supportingNode2.key(),supportingNode2));
148 Node node2 = node2Builder.build();
149 nodes.put(node2.key(),node2);
150 SupportingNode supportingNode3 = new SupportingNodeBuilder()
151 .setNodeRef(new NodeId("node 3"))
152 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
154 NodeBuilder node3Builder = new NodeBuilder()
155 .setNodeId(new NodeId("node 3"))
156 .withKey(new NodeKey(new NodeId("node 3")))
157 .setSupportingNode(Map.of(supportingNode3.key(),supportingNode3));
158 Node node3 = node3Builder.build();
159 nodes.put(node3.key(),node3);
160 SupportingNode supportingNode4 = new SupportingNodeBuilder()
161 .setNodeRef(new NodeId("node 4"))
162 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
164 NodeBuilder node4Builder = new NodeBuilder()
165 .setNodeId(new NodeId("node 4"))
166 .withKey(new NodeKey(new NodeId("node 4")))
167 .setSupportingNode(Map.of(supportingNode4.key(),supportingNode4));
168 Node node4 = node4Builder.build();
169 nodes.put(node4.key(),node4);
170 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder
172 new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks
175 .setNetworkId(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
176 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network network =
177 networkBuilder.build();
178 Optional.of(network);
182 public static Network1 getNetwork() {
183 Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
184 SupportingLink supportingLink1 = new SupportingLinkBuilder()
185 .setLinkRef(new LinkId("ref1"))
186 .setNetworkRef(new NetworkId("net1"))
188 SupportingLink supportingLink2 = new SupportingLinkBuilder()
189 .setLinkRef(new LinkId("ref2"))
190 .setNetworkRef(new NetworkId("net2"))
192 supportingLinks.put(supportingLink1.key(),supportingLink1);
193 supportingLinks.put(supportingLink2.key(),supportingLink2);
194 Map<LinkKey,Link> links = new HashMap<>();
195 Link link1 = new LinkBuilder()
196 .setLinkId(new LinkId("link 1"))
198 new DestinationBuilder()
199 .setDestNode(new NodeId("node 1"))
200 .setDestTp(new TpId("dest tp")).build())
203 .setSourceNode(new NodeId("node 2"))
204 .setSourceTp(new TpId("src tp"))
206 .setSupportingLink(supportingLinks)
209 Link link2 = new LinkBuilder()
210 .setLinkId(new LinkId("link 2"))
212 new DestinationBuilder()
213 .setDestNode(new NodeId("node 3"))
214 .setDestTp(new TpId("dest tp"))
218 .setSourceNode(new NodeId("node 4"))
219 .setSourceTp(new TpId("src tp"))
221 .setSupportingLink(supportingLinks)
223 links.put(link1.key(),link1);
224 links.put(link2.key(),link2);
225 Network1 network = new Network1Builder().setLink(links).build();
226 Optional.of(network);
230 public static Network1 getNetwork2() {
231 Map<LinkConcatenationKey,LinkConcatenation> linkConcentationValues = new HashMap<>();
232 LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
233 .setFiberType(LinkConcatenation.FiberType.Truewave)
234 .setPmd(new FiberPmd(BigDecimal.ONE))
235 .setSRLGId(Uint32.valueOf(1))
236 .setSRLGLength(Uint32.valueOf(1))
238 LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder()
239 .setFiberType(LinkConcatenation.FiberType.Truewave)
240 .setPmd(new FiberPmd(BigDecimal.ONE))
241 .setSRLGId(Uint32.valueOf(1))
242 .setSRLGLength(Uint32.valueOf(1))
244 linkConcentationValues.put(linkConcatenation.key(),linkConcatenation);
245 linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2);
246 Map<AmplifiedLinkKey,AmplifiedLink>
247 amplifiedLinkValues = new HashMap<>();
248 org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al =
249 new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes
250 .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
251 .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
252 .attributes.amplified.link.section.element.section.element.SpanBuilder()
253 .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
254 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
255 .setAdministrativeState(AdminStates.InService)
256 .setAutoSpanloss(true)
257 .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
258 .setLinkConcatenation(linkConcentationValues)
259 .setSpanlossBase(new RatioDB(BigDecimal.ONE))
260 .setSpanlossCurrent(new RatioDB(BigDecimal.ONE))
264 .setSectionEltNumber(Uint16.valueOf(1)).build();
265 org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al2 = new
266 org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes
267 .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
268 .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
269 .attributes.amplified.link.section.element.section.element.SpanBuilder()
270 .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link
271 .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
272 .setAdministrativeState(AdminStates.InService)
273 .setAutoSpanloss(true)
274 .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
275 .setLinkConcatenation(linkConcentationValues)
276 .setSpanlossBase(new RatioDB(BigDecimal.ONE))
277 .setSpanlossCurrent(new RatioDB(BigDecimal.ONE))
281 .setSectionEltNumber(Uint16.valueOf(1)).build();
282 amplifiedLinkValues.put(al.key(),al);
283 amplifiedLinkValues.put(al2.key(),al2);
284 Map<Class<? extends Augmentation<Link>>, Augmentation<Link>> map = Collections.emptyMap();
285 Augmentation<Link> aug1 = new Link1Builder()
287 .setOMSAttributes(new OMSAttributesBuilder()
288 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
289 .setSpan(new SpanBuilder().build())
292 Augmentation<Link> aug2 = new Link1Builder()
294 .setOMSAttributes(new OMSAttributesBuilder()
295 .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
296 .setSpan(new SpanBuilder().build())
300 Map<SupportingLinkKey,SupportingLink> supportingLinks = new HashMap<>();
301 SupportingLink supportingLink = new SupportingLinkBuilder().setLinkRef(new LinkId("ref1"))
302 .setNetworkRef(new NetworkId("net1")).build();
303 SupportingLink supportingLink2 = new SupportingLinkBuilder().setLinkRef(new LinkId("ref2"))
304 .setNetworkRef(new NetworkId("net1")).build();
305 supportingLinks.put(supportingLink.key(),supportingLink);
306 supportingLinks.put(supportingLink2.key(),supportingLink2);
307 Map<LinkKey,Link> links = new HashMap<>();
308 Link link1 = new LinkBuilder().setLinkId(new LinkId("link 1"))
309 .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 1"))
310 .setDestTp(new TpId("dest tp")).build())
311 .setSource(new SourceBuilder().setSourceNode(new NodeId("node 2"))
312 .setSourceTp(new TpId("src tp")).build())
313 .setSupportingLink(supportingLinks)
314 .addAugmentation(aug1)
315 .addAugmentation(aug2).build();
317 Link link2 = new LinkBuilder().setLinkId(new LinkId("link 2"))
318 .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 3"))
319 .setDestTp(new TpId("dest tp")).build())
320 .setSource(new SourceBuilder().setSourceNode(new NodeId("node 4"))
321 .setSourceTp(new TpId("src tp")).build())
322 .setSupportingLink(supportingLinks).build();
323 links.put(link1.key(),link1);
324 links.put(link2.key(),link2);
325 Network1 network = new Network1Builder().setLink(links).build();
326 Optional.of(network);
330 public static List<NodeId> getNodeIds() {
331 List<NodeId> nodes = new ArrayList<>();
332 NodeId node = new NodeId("node 1");
333 NodeId node2 = new NodeId("node 1");
334 NodeId node3 = new NodeId("node 1");
335 NodeId node4 = new NodeId("node 1");
343 public static Nodes getNodes(String nodeId, String mappingKey) {
344 Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
345 CpToDegree cp1 = new CpToDegreeBuilder()
346 .setCircuitPackName("circuit name1")
347 .setDegreeNumber(Uint32.valueOf(123))
349 CpToDegree cp2 = new CpToDegreeBuilder()
350 .setCircuitPackName("circuit name2")
351 .setDegreeNumber(Uint32.valueOf(123))
353 cpList.put(cp1.key(),cp1);
354 cpList.put(cp2.key(),cp2);
355 Mapping map1 = new MappingBuilder()
356 .setLogicalConnectionPoint("point")
357 .setSupportingCircuitPackName("circuit name")
358 .setSupportingOms("oms")
359 .setSupportingOts("ots")
360 .setSupportingPort("port")
361 .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
363 Nodes nodes = new NodesBuilder()
365 .setNodeInfo(new NodeInfoBuilder()
366 .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Xpdr)
367 .setOpenroadmVersion(OpenroadmNodeVersion._121)
369 .setCpToDegree(cpList)
370 .setMapping(Map.of(map1.key(),map1))
375 public static Nodes getNodes2(String nodeId, String mappingKey) {
376 Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
377 CpToDegree cp1 = new CpToDegreeBuilder()
378 .setCircuitPackName("circuit name1")
379 .setDegreeNumber(Uint32.valueOf(123))
381 CpToDegree cp2 = new CpToDegreeBuilder()
382 .setCircuitPackName("circuit name2")
383 .setDegreeNumber(Uint32.valueOf(123))
385 cpList.put(cp1.key(),cp1);
386 cpList.put(cp2.key(),cp2);
387 Mapping map1 = new MappingBuilder()
388 .setLogicalConnectionPoint("point")
389 .setSupportingCircuitPackName("circuit name")
390 .setSupportingOms("oms")
391 .setSupportingOts("ots")
392 .setSupportingPort("port")
393 .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
395 Nodes nodes = new NodesBuilder()
397 .setNodeInfo(new NodeInfoBuilder()
399 .setOpenroadmVersion(OpenroadmNodeVersion._121)
401 .setCpToDegree(cpList)
402 .setMapping(Map.of(map1.key(),map1))
407 public static Nodes getNodes3(String nodeId, String mappingKey) {
408 Map<CpToDegreeKey,CpToDegree> cpList = new HashMap<>();
409 CpToDegree cp1 = new CpToDegreeBuilder()
410 .setCircuitPackName("circuit name1")
411 .setDegreeNumber(Uint32.valueOf(123))
413 CpToDegree cp2 = new CpToDegreeBuilder()
414 .setCircuitPackName("circuit name2")
415 .setDegreeNumber(Uint32.valueOf(123))
417 cpList.put(cp1.key(),cp1);
418 cpList.put(cp2.key(),cp2);
419 Mapping map1 = new MappingBuilder()
420 .setLogicalConnectionPoint("point")
421 .setSupportingCircuitPackName("circuit name")
422 .setSupportingOms("oms")
423 .setSupportingOts("ots")
424 .setSupportingPort("port")
425 .withKey(new MappingKey((mappingKey != null) ? mappingKey : "null"))
427 Nodes nodes = new NodesBuilder()
429 .setNodeInfo(new NodeInfoBuilder()
430 .setNodeType(org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes.Rdm)
431 .setOpenroadmVersion(OpenroadmNodeVersion._121)
433 .setCpToDegree(cpList)
434 .setMapping(Map.of(map1.key(),map1))
439 public static void writeNodeTransaction(String nodeId, DataBroker dataBroker, String mappingKey) {
440 InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
441 .child(Nodes.class, new NodesKey(nodeId));
442 Nodes nodes = getNodes(nodeId, mappingKey);
443 writeTransaction(dataBroker, nodesIID, nodes);
446 public static void writeNodeTransaction2(String nodeId, DataBroker dataBroker, String mappingKey) {
447 InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
448 .child(Nodes.class, new NodesKey(nodeId));
449 Nodes nodes = getNodes2(nodeId, mappingKey);
450 writeTransaction(dataBroker, nodesIID, nodes);
453 public static void writeNodeTransaction3(String nodeId, DataBroker dataBroker, String mappingKey) {
454 InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
455 .child(Nodes.class, new NodesKey(nodeId));
456 Nodes nodes = getNodes3(nodeId, mappingKey);
457 writeTransaction(dataBroker, nodesIID, nodes);