2 * Copyright © 2020 Orange Labs, 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.common.mapping;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
14 import static org.junit.Assert.fail;
15 import static org.mockito.Mockito.mock;
16 import static org.mockito.Mockito.verify;
17 import static org.mockito.Mockito.when;
19 import java.util.ArrayList;
20 import java.util.Arrays;
21 import java.util.Collections;
22 import java.util.HashMap;
23 import java.util.List;
25 import java.util.Optional;
26 import java.util.Random;
27 import java.util.concurrent.ExecutionException;
28 import org.eclipse.jdt.annotation.NonNull;
29 import org.junit.Before;
30 import org.junit.Ignore;
31 import org.junit.Test;
32 import org.opendaylight.mdsal.binding.api.DataBroker;
33 import org.opendaylight.mdsal.binding.api.ReadTransaction;
34 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
35 import org.opendaylight.transportpce.common.DataStoreContext;
36 import org.opendaylight.transportpce.common.DataStoreContextImpl;
37 import org.opendaylight.transportpce.common.Timeouts;
38 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
39 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
40 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
41 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.Network;
42 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.NetworkBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.Nodes;
44 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.nodes.Mapping;
45 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.Direction;
46 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.NodeTypes;
47 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.Port;
48 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.ParentCircuitPackBuilder;
49 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.Ports;
50 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.PortsBuilder;
51 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.PortsKey;
52 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacks;
53 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacksBuilder;
54 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacksKey;
55 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.ConnectionPorts;
56 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.ConnectionPortsBuilder;
57 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.ConnectionPortsKey;
58 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
59 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceBuilder;
60 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
61 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
62 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDeviceBuilder;
63 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.ConnectionMap;
64 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.ConnectionMapBuilder;
65 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.ConnectionMapKey;
66 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Degree;
67 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.DegreeBuilder;
68 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.DegreeKey;
69 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Info;
70 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.InfoBuilder;
71 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Protocols;
72 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.ProtocolsBuilder;
73 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.SharedRiskGroup;
74 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.SharedRiskGroupBuilder;
75 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.SharedRiskGroupKey;
76 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.connection.map.Destination;
77 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.connection.map.DestinationBuilder;
78 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.connection.map.DestinationKey;
79 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.connection.map.SourceBuilder;
80 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces;
81 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.InterfacesBuilder;
82 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.PartnerPortBuilder;
83 import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpenROADMOpticalMultiplex;
84 import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalTransport;
85 import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.Protocols1Builder;
86 import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.LldpBuilder;
87 import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.lldp.PortConfig;
88 import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.lldp.PortConfigBuilder;
89 import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.lldp.PortConfigKey;
90 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
91 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
92 import org.opendaylight.yangtools.yang.binding.Augmentation;
93 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
94 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
95 import org.opendaylight.yangtools.yang.common.Uint16;
96 import org.opendaylight.yangtools.yang.common.Uint32;
97 import org.slf4j.Logger;
98 import org.slf4j.LoggerFactory;
101 public class PortMappingVersion121Test {
103 private static final Logger LOG = LoggerFactory.getLogger(PortMappingVersion121Test.class);
104 private static DataBroker dataBroker;
105 private static DeviceTransactionManager deviceTransactionManager;
106 private static OpenRoadmInterfaces openRoadmInterfaces;
107 private static PortMappingVersion121 portMappingVersion121;
108 private Random ran = new Random();
111 public void setUp() throws Exception {
112 // test createMappingData for a xpdr node with 3 network + 1 client + bidirectional & unidirectional ports
113 DataStoreContext dataStoreContext = new DataStoreContextImpl();
114 dataBroker = dataStoreContext.getDataBroker();
115 deviceTransactionManager = mock(DeviceTransactionManager.class);
116 openRoadmInterfaces = mock(OpenRoadmInterfaces.class);
117 portMappingVersion121 = new PortMappingVersion121(dataBroker, deviceTransactionManager, openRoadmInterfaces);
121 public void createMappingDataTestRdm() {
123 final Info info = getInfo2();
125 List<Interfaces> interfacesList = Arrays.asList(getInterfaces("i1"), getInterfaces("i2"));
127 // mock 1 bidirectional port for degree
128 Ports ports = getPortsWithInterfaces(interfacesList, "p1");
129 List<Ports> portsList = Arrays.asList(ports);
131 // mock 2 bidirectional port for SRG
132 Ports ports1 = getPortsWithInterfaces(interfacesList, "p2");
133 List<Ports> portsList1 = Arrays.asList(ports1);
135 // mock 2 unidirectional ports for degree
136 Ports ports2 = getPorts("p2", Port.PortQual.RoadmExternal, "c3", "p3", Direction.Rx);
137 Ports ports3 = getPorts("p3", Port.PortQual.RoadmExternal, "c3", "p2", Direction.Tx);
138 List<Ports> portsList2 = Arrays.asList(ports2, ports3);
140 // mock 2 unidirectional ports for degree, reverse direction
141 Ports ports22 = getPorts("p22", Port.PortQual.RoadmExternal, "c5", "p33", Direction.Tx);
142 Ports ports33 = getPorts("p33", Port.PortQual.RoadmExternal, "c5", "p22", Direction.Rx);
143 List<Ports> portsList22 = Arrays.asList(ports22, ports33);
145 // mock 2 unidirectional ports for srg
146 Ports ports4 = getPorts("p4", Port.PortQual.RoadmExternal, "c4", "p5", Direction.Rx);
147 Ports ports5 = getPorts("p5", Port.PortQual.RoadmExternal, "c4", "p4", Direction.Tx);
148 List<Ports> portsList4 = Arrays.asList(ports4, ports5);
150 // mock 2 unidirectional ports for srg, reverse direction
151 Ports ports44 = getPorts("p44", Port.PortQual.RoadmExternal, "c6", "p55", Direction.Tx);
152 Ports ports55 = getPorts("p55", Port.PortQual.RoadmExternal, "c6", "p44", Direction.Rx);
153 List<Ports> portsList44 = Arrays.asList(ports44, ports55);
155 // mock 6 circuit packs
156 final CircuitPacks circuitPackObject = getCircuitPacks(portsList, "c1", "pc1");
157 final CircuitPacks circuitPackObject2 = getCircuitPacks(portsList, "c2", "pc2");
158 final CircuitPacks circuitPackObject3 = getCircuitPacks(portsList2, "c3", "pc3");
159 final CircuitPacks circuitPackObject4 = getCircuitPacks(portsList4, "c4", "pc4");
160 final CircuitPacks circuitPackObject5 = getCircuitPacks(portsList22, "c5", "pc5");
161 final CircuitPacks circuitPackObject6 = getCircuitPacks(portsList44, "c6", "pc6");
163 // mock 6 connection ports
164 ConnectionPorts connectionPorts = getConnectionPorts("c1", "p1");
165 Map<ConnectionPortsKey, ConnectionPorts> connectionPortsMap = new HashMap<>();
166 connectionPortsMap.put(connectionPorts.key(), connectionPorts);
168 ConnectionPorts connectionPorts2 = getConnectionPorts("c2", "p1");
169 List<ConnectionPorts> connectionPortsList2 = new ArrayList<ConnectionPorts>();
170 connectionPortsList2.add(connectionPorts2);
172 ConnectionPorts connectionPorts3 = getConnectionPorts("c3", "p2");
173 ConnectionPorts connectionPorts4 = getConnectionPorts("c3", "p3");
174 Map<ConnectionPortsKey, ConnectionPorts> connectionPortsMap3 = new HashMap<>();
175 connectionPortsMap3.put(connectionPorts3.key(), connectionPorts3);
176 connectionPortsMap3.put(connectionPorts4.key(), connectionPorts4);
178 ConnectionPorts connectionPorts5 = getConnectionPorts("c4", "p4");
179 ConnectionPorts connectionPorts6 = getConnectionPorts("c4", "p5");
180 List<ConnectionPorts> connectionPortsList4 = new ArrayList<ConnectionPorts>();
181 connectionPortsList4.add(connectionPorts5);
182 connectionPortsList4.add(connectionPorts6);
184 ConnectionPorts connectionPorts33 = getConnectionPorts("c5", "p22");
185 ConnectionPorts connectionPorts44 = getConnectionPorts("c5", "p33");
186 Map<ConnectionPortsKey, ConnectionPorts> connectionPortsMap33 = new HashMap<>();
187 connectionPortsMap33.put(connectionPorts33.key(), connectionPorts33);
188 connectionPortsMap33.put(connectionPorts44.key(), connectionPorts44);
190 ConnectionPorts connectionPorts55 = getConnectionPorts("c6", "p44");
191 ConnectionPorts connectionPorts66 = getConnectionPorts("c6", "p55");
192 Map<ConnectionPortsKey, ConnectionPorts> connectionPortsMap44 = new HashMap<>();
193 connectionPortsMap44.put(connectionPorts55.key(), connectionPorts55);
194 connectionPortsMap44.put(connectionPorts66.key(), connectionPorts66);
196 // mock one degree with bidirectional port
197 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks circuitPacks =
198 new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksBuilder()
199 .setCircuitPackName("c1").build();
201 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksKey,
202 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks> circuitPacksMap =
204 circuitPacksMap.put(circuitPacks.key(), circuitPacks);
206 final Degree ordmDegreeObject = new DegreeBuilder().setDegreeNumber(Uint16.valueOf(1))
207 .setCircuitPacks(circuitPacksMap).setConnectionPorts(connectionPortsMap).build();
209 // mock one srg with bidirectional port
210 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks srgCircuitPacks =
211 new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacksBuilder()
212 .setCircuitPackName("c2").build();
214 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacksKey,
215 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks> srgCircuitPacksList =
217 srgCircuitPacksList.put(srgCircuitPacks.key(), srgCircuitPacks);
219 final SharedRiskGroup ordmSrgObject = new SharedRiskGroupBuilder().setSrgNumber(Uint16.valueOf(1))
220 .setCircuitPacks(srgCircuitPacksList).build();
222 // mock one degree with 2 unidirectional ports
223 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks circuitPacks3 =
224 new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksBuilder()
225 .setCircuitPackName("c3").build();
226 List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks> circuitPacksList3 =
227 new ArrayList<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks>();
228 circuitPacksList3.add(circuitPacks3);
230 Map<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksKey,
231 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks> values =
233 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksKey circuitPackKey =
234 new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksKey(
236 values.put(circuitPackKey, circuitPacks3);
237 final Degree ordmDegreeObject3 = new DegreeBuilder().setDegreeNumber(Uint16.valueOf(2)).setCircuitPacks(values)
238 .setConnectionPorts(connectionPortsMap3).build();
239 // mock one srg with 2 unidirectional ports
240 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks srgCircuitPacks4 =
241 new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacksBuilder()
242 .setCircuitPackName("c4").build();
243 Map<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacksKey,
244 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks>
245 srgCircuitPacksList4 = new HashMap<>();
246 srgCircuitPacksList4.put(srgCircuitPacks4.key(), srgCircuitPacks4);
248 final SharedRiskGroup ordmSrgObject4 = new SharedRiskGroupBuilder().setSrgNumber(Uint16.valueOf(2))
249 .setCircuitPacks(srgCircuitPacksList4).build();
251 // mock one degree with unidirectional ports, reverse direction
252 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks circuitPacks5 =
253 new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksBuilder()
254 .setCircuitPackName("c5").build();
255 List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks> circuitPacksList5 =
256 new ArrayList<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks>();
257 circuitPacksList5.add(circuitPacks5);
258 values = new HashMap<>();
259 circuitPackKey = new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacksKey(
261 values.put(circuitPackKey, circuitPacks5);
262 final Degree ordmDegreeObject5 = new DegreeBuilder().setDegreeNumber(Uint16.valueOf(3)).setCircuitPacks(values)
263 .setConnectionPorts(connectionPortsMap44).build();
265 // mock one srg with 2 unidirectional ports, reverse direction
266 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks srgCircuitPacks6 =
267 new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacksBuilder()
268 .setCircuitPackName("c6").build();
270 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacksKey,
271 org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks> srgCircuitPacksMap6 =
273 srgCircuitPacksMap6.put(srgCircuitPacks6.key(), srgCircuitPacks6);
275 final SharedRiskGroup ordmSrgObject6 = new SharedRiskGroupBuilder().setSrgNumber(Uint16.valueOf(3))
276 .setCircuitPacks(srgCircuitPacksMap6).build();
278 // mock lldp configuration
279 PortConfig portConfig =
280 new PortConfigBuilder().setIfName("i1").setAdminStatus(PortConfig.AdminStatus.Txandrx).build();
281 Map<PortConfigKey, PortConfig> portConfigMap = new HashMap<>();
282 portConfigMap.put(portConfig.key(), portConfig);
283 Augmentation<Protocols> augmentation =
284 new Protocols1Builder().setLldp(new LldpBuilder().setPortConfig(portConfigMap).build()).build();
285 Protocols protocols = new ProtocolsBuilder().addAugmentation(augmentation).build();
287 // mock responses for deviceTransactionManager calls
288 InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.device
289 .rev170206.org.openroadm.device.container.org.openroadm.device.Degree> deviceIID = InstanceIdentifier
290 .create(OrgOpenroadmDevice.class)
291 .child(org.opendaylight.yang.gen.v1.http.org.openroadm.device
292 .rev170206.org.openroadm.device.container.org.openroadm.device.Degree.class,
293 new DegreeKey(Uint16.valueOf(1)));
294 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, deviceIID,
295 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
296 .thenReturn(Optional.of(ordmDegreeObject));
298 InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
299 .org.openroadm.device.container.org.openroadm.device.Degree> deviceIID3 = InstanceIdentifier
300 .create(OrgOpenroadmDevice.class)
301 .child(org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
302 .org.openroadm.device.container.org.openroadm.device.Degree.class,
303 new DegreeKey(Uint16.valueOf(2)));
304 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, deviceIID3,
305 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
306 .thenReturn(Optional.of(ordmDegreeObject3));
308 InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
309 .org.openroadm.device.container.org.openroadm.device.Degree> deviceIID5 = InstanceIdentifier
310 .create(OrgOpenroadmDevice.class)
311 .child(org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
312 .org.openroadm.device.container.org.openroadm.device.Degree.class,
313 new DegreeKey(Uint16.valueOf(3)));
314 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, deviceIID5,
315 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
316 .thenReturn(Optional.of(ordmDegreeObject5));
318 InstanceIdentifier<Protocols> protocoliid =
319 InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Protocols.class);
320 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, protocoliid,
321 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(protocols));
323 Interface interfaceObject = new InterfaceBuilder().setSupportingCircuitPackName("sc1").build();
324 InstanceIdentifier<Interface> interfaceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
325 .child(Interface.class, new InterfaceKey(portConfig.getIfName()));
326 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, interfaceIID,
327 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
328 .thenReturn(Optional.of(interfaceObject));
330 InstanceIdentifier<Ports> portID = getChild("c1", "p1");
331 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID,
332 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports));
334 InstanceIdentifier<Ports> portID1 = getChild("c2", "p1");
335 when(deviceTransactionManager.getDataFromDevice("node",
336 LogicalDatastoreType.OPERATIONAL, portID1,
337 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
338 .thenReturn(Optional.of(ports1));
340 InstanceIdentifier<Ports> portID2 = getChild("c3", "p2");
341 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID2,
342 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports2));
344 InstanceIdentifier<Ports> portID3 = getChild("c3", "p3");
345 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID3,
346 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports3));
348 InstanceIdentifier<Ports> portID22 = getChild("c5", "p22");
349 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID22,
350 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports22));
352 InstanceIdentifier<Ports> portID33 = getChild("c5", "p33");
353 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID33,
354 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports33));
356 InstanceIdentifier<Ports> portID4 = getChild("c4", "p4");
357 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID4,
358 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports4));
360 InstanceIdentifier<Ports> portID5 = getChild("c4", "p5");
361 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID5,
362 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports5));
364 InstanceIdentifier<Ports> portID44 = getChild("c6", "p44");
365 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID44,
366 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports44));
368 InstanceIdentifier<Ports> portID55 = getChild("c6", "p55");
369 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID55,
370 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports55));
372 InstanceIdentifier<Info> infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class);
373 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, infoIID,
374 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(info));
376 InstanceIdentifier<CircuitPacks> circuitPacksIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
377 .child(CircuitPacks.class, new CircuitPacksKey("c1"));
378 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID,
379 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
380 .thenReturn(Optional.of(circuitPackObject));
382 InstanceIdentifier<CircuitPacks> circuitPacksIID2 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
383 .child(CircuitPacks.class, new CircuitPacksKey("c2"));
384 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID2,
385 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
386 .thenReturn(Optional.of(circuitPackObject2));
388 InstanceIdentifier<CircuitPacks> circuitPacksIID3 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
389 .child(CircuitPacks.class, new CircuitPacksKey("c3"));
390 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID3,
391 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
392 .thenReturn(Optional.of(circuitPackObject3));
394 InstanceIdentifier<CircuitPacks> circuitPacksIID4 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
395 .child(CircuitPacks.class, new CircuitPacksKey("c4"));
396 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID4,
397 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
398 .thenReturn(Optional.of(circuitPackObject4));
400 InstanceIdentifier<CircuitPacks> circuitPacksIID5 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
401 .child(CircuitPacks.class, new CircuitPacksKey("c5"));
402 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID5,
403 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
404 .thenReturn(Optional.of(circuitPackObject5));
406 InstanceIdentifier<CircuitPacks> circuitPacksIID6 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
407 .child(CircuitPacks.class, new CircuitPacksKey("c6"));
408 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID6,
409 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
410 .thenReturn(Optional.of(circuitPackObject6));
412 InstanceIdentifier<SharedRiskGroup> srgIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
413 .child(SharedRiskGroup.class, new SharedRiskGroupKey(Uint16.valueOf(1)));
414 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, srgIID,
415 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
416 .thenReturn(Optional.of(ordmSrgObject));
418 InstanceIdentifier<SharedRiskGroup> srgIID4 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
419 .child(SharedRiskGroup.class, new SharedRiskGroupKey(Uint16.valueOf(2)));
420 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, srgIID4,
421 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
422 .thenReturn(Optional.of(ordmSrgObject4));
424 InstanceIdentifier<SharedRiskGroup> srgIID6 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
425 .child(SharedRiskGroup.class, new SharedRiskGroupKey(Uint16.valueOf(3)));
426 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, srgIID6,
427 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
428 .thenReturn(Optional.of(ordmSrgObject6));
430 Interface ifc1 = new InterfaceBuilder().setType(OpticalTransport.class).build();
431 Interface ifc2 = new InterfaceBuilder().setType(OpenROADMOpticalMultiplex.class).build();
433 when(openRoadmInterfaces.getInterface("node", "i1")).thenReturn(Optional.of(ifc1));
434 when(openRoadmInterfaces.getInterface("node", "i2")).thenReturn(Optional.of(ifc2));
435 } catch (OpenRoadmInterfaceException e) {
436 LOG.error("Failed to mock interafce.", e);
440 // test createMappingData with a node with 3 dgree + 3 srg + bidirectional & unidirectional ports
441 assertTrue("creating mappingdata for existed node returns true",
442 portMappingVersion121.createMappingData("node"));
444 // verify 2 interfaces were processed
446 verify(openRoadmInterfaces).getInterface("node", "i1");
447 verify(openRoadmInterfaces).getInterface("node", "i2");
448 } catch (OpenRoadmInterfaceException e) {
449 LOG.error("Failed to read interface", e);
453 // assert all portmappings have been created for the roadm node
454 ReadTransaction rr = dataBroker.newReadOnlyTransaction();
455 InstanceIdentifier<Network> mappingIID = InstanceIdentifier.create(Network.class);
456 Network network = new NetworkBuilder().build();
458 Optional<Network> optionalNetwork = rr.read(LogicalDatastoreType.CONFIGURATION, mappingIID).get();
459 if (optionalNetwork.isPresent()) {
460 network = optionalNetwork.get();
463 } catch (ExecutionException | InterruptedException e) {
464 LOG.error("Failed to read mapping.", e);
468 List<String> testMappings = Arrays.asList("SRG2-PP1-RX", "SRG3-PP1-RX", "SRG1-PP1-TXRX", "SRG3-PP1-TX",
469 "DEG1-TTP-TXRX", "SRG2-PP1-TX", "DEG2-TTP-RX", "DEG2-TTP-TX", "DEG3-TTP-RX", "DEG3-TTP-TX");
470 List<String> mappings = new ArrayList<>();
471 List<Nodes> nodes = new ArrayList<>(network.nonnullNodes().values());
472 List<Mapping> mappingValues = new ArrayList<>(nodes.get(0).nonnullMapping().values());
473 for (int i = 0; i < testMappings.size(); i++) {
474 mappings.add(mappingValues.get(i).getLogicalConnectionPoint());
476 Collections.sort(testMappings);
477 Collections.sort(mappings);
478 assertEquals("test mapping are equals to mapping", testMappings, mappings);
480 // test updateMapping
481 assertTrue("update mapping for node returns true",
482 portMappingVersion121.updateMapping("node", mappingValues.get(0)));
484 // test createMapping for non-existent roadm node
485 assertFalse("create non existed roadm node returns false", portMappingVersion121.createMappingData("node2"));
487 // test updateMapping for null roadm node
488 assertFalse("updating null roadm node returns false",
489 portMappingVersion121.updateMapping(null, mappingValues.get(0)));
494 public void createMappingDataTestXpdr() {
496 final Info info = getInfo();
498 // mock 1 bidirectional port for network
499 Ports ports = new PortsBuilder().setPortName("p1").setPortQual(Port.PortQual.XpdrNetwork)
500 .setPortDirection(Direction.Bidirectional).build();
501 List<Ports> portsList = new ArrayList<>();
502 portsList.add(ports);
504 // mock 1 bidirectional port for client
505 Ports ports11 = new PortsBuilder().setPortName("p11").setPortQual(Port.PortQual.XpdrClient)
506 .setPortDirection(Direction.Bidirectional).build();
507 List<Ports> portsList11 = new ArrayList<>();
508 portsList11.add(ports11);
510 // mock 2 unidirectional ports for network
511 Ports ports2 = getPorts("p2", Port.PortQual.XpdrNetwork, "c3", "p3", Direction.Rx);
512 Ports ports3 = getPorts("p3", Port.PortQual.XpdrNetwork, "c3", "p2", Direction.Tx);
513 List<Ports> portsList2 = new ArrayList<>();
514 portsList2.add(ports2);
515 portsList2.add(ports3);
517 // mock 2 unidirectional ports for network, reverse direction
518 Ports ports4 = getPorts("p4", Port.PortQual.XpdrNetwork, "c4", "p5", Direction.Tx);
519 Ports ports5 = getPorts("p5", Port.PortQual.XpdrNetwork, "c4", "p4", Direction.Rx);
520 List<Ports> portsList4 = new ArrayList<>();
521 portsList4.add(ports4);
522 portsList4.add(ports5);
524 // mock connection map
525 Destination destination = new DestinationBuilder().setCircuitPackName("c2").setPortName("p11").build();
526 List<Destination> destinationList = new ArrayList<>();
527 destinationList.add(destination);
528 ConnectionMap connectionMap = getConnectionMap(destinationList);
529 Map<ConnectionMapKey, ConnectionMap> connectionMapMap = new HashMap<>();
530 connectionMapMap.put(connectionMap.key(), connectionMap);
532 // mock reponses for deviceTransactionManager
533 InstanceIdentifier<Ports> portID = getChild("c1", "p1");
534 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID,
535 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports));
537 InstanceIdentifier<Ports> portID11 = getChild("c2", "p11");
538 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID11,
539 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports11));
541 InstanceIdentifier<Ports> portID2 = getChild("c3", "p2");
542 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID2,
543 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports2));
545 InstanceIdentifier<Ports> portID3 = getChild("c3", "p3");
546 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID3,
547 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports3));
549 InstanceIdentifier<Ports> portID4 = getChild("c4", "p4");
550 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID4,
551 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports4));
553 InstanceIdentifier<Ports> portID5 = getChild("c4", "p5");
554 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, portID5,
555 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(ports5));
557 InstanceIdentifier<Info> infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class);
558 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, infoIID,
559 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(info));
561 // mock 4 circuit packs
562 CircuitPacks circuitPackObject = getCircuitPacks(portsList, "c1", "pc1");
563 CircuitPacks circuitPackObject2 = getCircuitPacks(portsList11, "c2", "pc2");
564 CircuitPacks circuitPackObject3 = getCircuitPacks(portsList2, "c3", "pc3");
565 CircuitPacks circuitPackObject4 = getCircuitPacks(portsList4, "c4", "pc4");
567 InstanceIdentifier<CircuitPacks> circuitPacksIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
568 .child(CircuitPacks.class, new CircuitPacksKey("c1"));
569 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID,
570 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
571 .thenReturn(Optional.of(circuitPackObject));
573 InstanceIdentifier<CircuitPacks> circuitPacksIID2 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
574 .child(CircuitPacks.class, new CircuitPacksKey("c2"));
575 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID2,
576 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
577 .thenReturn(Optional.of(circuitPackObject2));
579 InstanceIdentifier<CircuitPacks> circuitPacksIID3 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
580 .child(CircuitPacks.class, new CircuitPacksKey("c3"));
581 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID3,
582 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
583 .thenReturn(Optional.of(circuitPackObject3));
585 InstanceIdentifier<CircuitPacks> circuitPacksIID4 = InstanceIdentifier.create(OrgOpenroadmDevice.class)
586 .child(CircuitPacks.class, new CircuitPacksKey("c4"));
587 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, circuitPacksIID4,
588 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT))
589 .thenReturn(Optional.of(circuitPackObject4));
591 Map<CircuitPacksKey, CircuitPacks> circuitPacksMap = new HashMap<>();
592 circuitPacksMap.put(circuitPackObject.key(), circuitPackObject);
593 circuitPacksMap.put(circuitPackObject2.key(), circuitPackObject2);
594 circuitPacksMap.put(circuitPackObject3.key(), circuitPackObject3);
595 circuitPacksMap.put(circuitPackObject4.key(), circuitPackObject4);
597 OrgOpenroadmDevice deviceObject = new OrgOpenroadmDeviceBuilder().setCircuitPacks(circuitPacksMap)
598 .setConnectionMap(connectionMapMap).build();
599 InstanceIdentifier<OrgOpenroadmDevice> deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class);
600 when(deviceTransactionManager.getDataFromDevice("node", LogicalDatastoreType.OPERATIONAL, deviceIID,
601 Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT)).thenReturn(Optional.of(deviceObject));
603 // test createMappingData for xpdr node with 2 network + 1 client + unidirectional & bidirectional ports
604 assertTrue("returns true when create mapping ", portMappingVersion121.createMappingData("node"));
606 // assert all portmappings have been created for the xpdr node
607 ReadTransaction rr = dataBroker.newReadOnlyTransaction();
608 InstanceIdentifier<Network> mappingIID = InstanceIdentifier.create(Network.class);
609 Network network = new NetworkBuilder().build();
611 Optional<Network> optionalNetwork = rr.read(LogicalDatastoreType.CONFIGURATION, mappingIID).get();
612 if (optionalNetwork.isPresent()) {
613 network = optionalNetwork.get();
616 } catch (ExecutionException | InterruptedException e) {
617 LOG.error("Failed to read mapping.", e);
620 List<String> testMappings = new ArrayList<>(List.of("XPDR1-CLIENT1", "XPDR1-NETWORK5", "XPDR1-NETWORK4",
621 "XPDR1-NETWORK3", "XPDR1-NETWORK2", "XPDR1-NETWORK1"));
622 List<String> mappings = new ArrayList<>();
623 List<Nodes> nodes = new ArrayList<>(network.nonnullNodes().values());
624 List<Mapping> mappingValues = new ArrayList<>(nodes.get(0).nonnullMapping().values());
625 for (int i = 0; i < testMappings.size(); i++) {
626 mappings.add(mappingValues.get(i).getLogicalConnectionPoint());
628 Collections.sort(testMappings);
629 Collections.sort(mappings);
630 assertEquals("test mapping are equals to mapping", testMappings, mappings);
634 private KeyedInstanceIdentifier<Ports, PortsKey> getChild(String c4, String p5) {
635 return InstanceIdentifier.create(OrgOpenroadmDevice.class).child(CircuitPacks.class, new CircuitPacksKey(c4))
636 .child(Ports.class, new PortsKey(p5));
639 private ConnectionMap getConnectionMap(List<Destination> destinationList) {
640 Map<DestinationKey, Destination> destinationMap = new HashMap<>();
641 for (Destination destination : destinationList) {
642 destinationMap.put(destination.key(), destination);
644 return new ConnectionMapBuilder().setConnectionMapNumber(Uint32.valueOf(1))
645 .setSource(new SourceBuilder().setCircuitPackName("c1").setPortName("p1").build())
646 .setDestination(destinationMap).build();
649 private Info getInfo() {
650 return new InfoBuilder().setNodeNumber(Uint32.valueOf(1)).setClli("clli").setNodeType(NodeTypes.Xpdr)
651 .setModel("model").setVendor("vendor").setIpAddress(new IpAddress(new Ipv4Address("10.1.1.1")))
652 .setMaxDegrees(Uint16.valueOf(2)).setMaxSrgs(Uint16.valueOf(2)).setNodeId("node").build();
655 private Ports getPorts(String p2, Port.PortQual roadmExternal, String c3, String p3, Direction rx) {
656 return new PortsBuilder().setPortName(p2).setPortQual(roadmExternal)
657 .setPartnerPort(new PartnerPortBuilder().setCircuitPackName(c3).setPortName(p3).build())
658 .setPortDirection(rx).build();
661 private ConnectionPorts getConnectionPorts(String c1, String p1) {
662 return new ConnectionPortsBuilder().setIndex(Uint32.valueOf(ran.nextInt(Integer.MAX_VALUE)))
663 .setCircuitPackName(c1).setPortName(p1).build();
666 private CircuitPacks getCircuitPacks(List<Ports> portsList, String c1, String pc1) {
667 Map<PortsKey, Ports> portsMap = new HashMap<>();
668 for (Ports ports : portsList) {
669 portsMap.put(ports.key(), ports);
671 return new CircuitPacksBuilder().setCircuitPackName(c1)
672 .setParentCircuitPack(new ParentCircuitPackBuilder().setCircuitPackName(pc1).build()).setPorts(portsMap)
676 private Ports getPortsWithInterfaces(List<Interfaces> interfacesList, String p1) {
677 return new PortsBuilder().setPortName(p1).setPortQual(Port.PortQual.RoadmExternal)
678 .setPortDirection(Direction.Bidirectional).setInterfaces(interfacesList).build();
681 private Info getInfo2() {
682 return new InfoBuilder().setNodeNumber(Uint32.valueOf(1)).setClli("clli").setNodeType(NodeTypes.Rdm)
683 .setModel("model").setVendor("vendor").setIpAddress(new IpAddress(new Ipv4Address("10.1.1.1")))
684 .setMaxDegrees(Uint16.valueOf(3)).setMaxSrgs(Uint16.valueOf(3)).build();
687 private Interfaces getInterfaces(String i1) {
688 return new InterfacesBuilder().setInterfaceName(i1).build();