Upgrade openroadm service models to 10.1
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / utils / PceTestData.java
1 /*
2  * Copyright © 2017 AT&T, 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 package org.opendaylight.transportpce.pce.utils;
9
10 import java.math.BigDecimal;
11 import java.util.Arrays;
12 import java.util.Map;
13 import org.opendaylight.transportpce.common.ResponseCodes;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestInput;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestInputBuilder;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestOutput;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestOutputBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceAEnd;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceAEndBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceZEnd;
21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceZEndBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev210528.NodeIdType;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommon;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommonBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.sdnc.request.header.SdncRequestHeaderBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirectionKey;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirectionKey;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.port.PortBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.CoRoutingBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.DiversityBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.ExcludeBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.IncludeBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.LatencyBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co.routing.ServiceIdentifierListBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity.existing.service.constraints.ServiceIdentifierListKey;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.HardConstraintsBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.SoftConstraintsBuilder;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.service.applicability.g.ServiceApplicabilityBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev191129.ServiceFormat;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInputBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirectionBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ZToADirectionBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.PceMetric;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParameters;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParametersBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescription;
49 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescriptionBuilder;
50 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder;
51 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder;
52 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeader;
53 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeaderBuilder;
54 import org.opendaylight.yangtools.yang.common.Uint32;
55 import org.opendaylight.yangtools.yang.common.Uint8;
56
57
58 public final class PceTestData {
59
60     private PceTestData() {
61     }
62
63     public static PathComputationRequestInput getEmptyPCERequest() {
64         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
65                 .setRequestId("request1")
66                 .build();
67         return new PathComputationRequestInputBuilder()
68             .setServiceHandlerHeader(serviceHandlerHeader)
69             .build();
70     }
71
72     public static PathComputationRequestInput getEmptyPCERequestServiceNameWithRequestId() {
73         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
74                 .setRequestId("request1")
75                 .build();
76         return new PathComputationRequestInputBuilder()
77             .setServiceName("serviceName")
78             .setServiceHandlerHeader(serviceHandlerHeader)
79             .build();
80     }
81
82     public static PathComputationRequestInput getEmptyPCERequestServiceNameWithOutRequestId() {
83         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
84                 .build();
85         return new PathComputationRequestInputBuilder()
86             .setServiceName("serviceName")
87             .setServiceHandlerHeader(serviceHandlerHeader)
88             .build();
89     }
90
91     public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral2() {
92         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
93                 .setRequestId("request1")
94                 .build();
95         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
96                 .setServiceFormat(ServiceFormat.ODU)
97                 .setServiceRate(Uint32.valueOf(100))
98                 .setClli("clli11")
99                 .setNodeId("XPONDER-2-2")
100                 .setTxDirection(new TxDirectionBuilder().setPort(
101                         new PortBuilder()
102                                 .setPortDeviceName("Some port-device-name")
103                                 .setPortType("Some port-type")
104                                 .setPortName("Some port-name")
105                                 .setPortRack("Some port-rack")
106                                 .setPortShelf("Some port-shelf")
107                                 .setPortSlot("Some port-slot")
108                                 .setPortSubSlot("Some port-sub-slot")
109                                 .build()
110                 ).build())
111                 .setRxDirection(new RxDirectionBuilder().setPort(
112                         new PortBuilder()
113                                 .setPortDeviceName("Some port-device-name")
114                                 .setPortType("Some port-type")
115                                 .setPortName("Some port-name")
116                                 .setPortRack("Some port-rack")
117                                 .setPortShelf("Some port-shelf")
118                                 .setPortSlot("Some port-slot")
119                                 .setPortSubSlot("Some port-sub-slot")
120                                 .build()
121                 ).build())
122                 .build();
123         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
124                 .setServiceFormat(ServiceFormat.ODU)
125                 .setServiceRate(Uint32.valueOf(0))
126                 .setClli("Some clli11")
127                 .setNodeId("XPONDER-1-2")
128                 .setTxDirection(new TxDirectionBuilder().setPort(
129                         new PortBuilder()
130                                 .setPortDeviceName("Some port-device-name")
131                                 .setPortType("Some port-type")
132                                 .setPortName("Some port-name")
133                                 .setPortRack("Some port-rack")
134                                 .setPortShelf("Some port-shelf")
135                                 .setPortSlot("Some port-slot")
136                                 .setPortSubSlot("Some port-sub-slot")
137                                 .build()
138                 ).build())
139                 .setRxDirection(new RxDirectionBuilder().setPort(
140                         new PortBuilder()
141                                 .setPortDeviceName("Some port-device-name")
142                                 .setPortType("Some port-type")
143                                 .setPortName("Some port-name")
144                                 .setPortRack("Some port-rack")
145                                 .setPortShelf("Some port-shelf")
146                                 .setPortSlot("Some port-slot")
147                                 .setPortSubSlot("Some port-sub-slot")
148                                 .build()
149                 ).build())
150                 .build();
151         return new PathComputationRequestInputBuilder()
152             .setServiceName("service1")
153             .setResourceReserve(true)
154             .setPceRoutingMetric(PceMetric.HopCount)
155             .setServiceHandlerHeader(serviceHandlerHeader)
156             .setServiceAEnd(serviceAEnd)
157             .setServiceZEnd(serviceZEnd)
158             .setHardConstraints(new HardConstraintsBuilder()
159                 .setCustomerCode(Arrays.asList("Some customer-code"))
160                 .setCoRouting(new CoRoutingBuilder()
161                     .setServiceIdentifierList(Map.of(
162                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints
163                                 .co.routing.ServiceIdentifierListKey("Some existing-service"),
164                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
165                     .build())
166                 .build())
167             .setSoftConstraints(new SoftConstraintsBuilder()
168                 .setCustomerCode(Arrays.asList("Some customer-code"))
169                 .setCoRouting(new CoRoutingBuilder()
170                     .setServiceIdentifierList(Map.of(
171                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints
172                                 .co.routing.ServiceIdentifierListKey("Some existing-service"),
173                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
174                     .build())
175                 .build())
176             .build();
177     }
178
179     public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral() {
180         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
181                 .setRequestId("request1")
182                 .build();
183         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
184                 .setServiceFormat(ServiceFormat.Ethernet)
185                 .setServiceRate(Uint32.valueOf(100))
186                 .setClli("clli11")
187                 .setNodeId("XPONDER-2-2")
188                 .setTxDirection(new TxDirectionBuilder().setPort(
189                         new PortBuilder()
190                                 .setPortDeviceName("Some port-device-name")
191                                 .setPortType("Some port-type")
192                                 .setPortName("Some port-name")
193                                 .setPortRack("Some port-rack")
194                                 .setPortShelf("Some port-shelf")
195                                 .setPortSlot("Some port-slot")
196                                 .setPortSubSlot("Some port-sub-slot")
197                                 .build()
198                 ).build())
199                 .setRxDirection(new RxDirectionBuilder().setPort(
200                         new PortBuilder()
201                                 .setPortDeviceName("Some port-device-name")
202                                 .setPortType("Some port-type")
203                                 .setPortName("Some port-name")
204                                 .setPortRack("Some port-rack")
205                                 .setPortShelf("Some port-shelf")
206                                 .setPortSlot("Some port-slot")
207                                 .setPortSubSlot("Some port-sub-slot")
208                                 .build()
209                 ).build())
210                 .build();
211         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
212                 .setServiceFormat(ServiceFormat.Ethernet)
213                 .setServiceRate(Uint32.valueOf(0))
214                 .setClli("Some clli11")
215                 .setNodeId("XPONDER-1-2")
216                 .setTxDirection(new TxDirectionBuilder().setPort(
217                         new PortBuilder()
218                                 .setPortDeviceName("Some port-device-name")
219                                 .setPortType("Some port-type")
220                                 .setPortName("Some port-name")
221                                 .setPortRack("Some port-rack")
222                                 .setPortShelf("Some port-shelf")
223                                 .setPortSlot("Some port-slot")
224                                 .setPortSubSlot("Some port-sub-slot")
225                                 .build()
226                 ).build())
227                 .setRxDirection(new RxDirectionBuilder().setPort(
228                         new PortBuilder()
229                                 .setPortDeviceName("Some port-device-name")
230                                 .setPortType("Some port-type")
231                                 .setPortName("Some port-name")
232                                 .setPortRack("Some port-rack")
233                                 .setPortShelf("Some port-shelf")
234                                 .setPortSlot("Some port-slot")
235                                 .setPortSubSlot("Some port-sub-slot")
236                                 .build()
237                 ).build())
238                 .build();
239         return new PathComputationRequestInputBuilder()
240             .setServiceName("service1")
241             .setResourceReserve(true)
242             .setPceRoutingMetric(PceMetric.HopCount)
243             .setServiceHandlerHeader(serviceHandlerHeader)
244             .setServiceAEnd(serviceAEnd)
245             .setServiceZEnd(serviceZEnd)
246             .setHardConstraints(new HardConstraintsBuilder()
247                 .setCustomerCode(Arrays.asList("Some customer-code"))
248                 .setCoRouting(new CoRoutingBuilder()
249                     .setServiceIdentifierList(Map.of(
250                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
251                                 .routing.ServiceIdentifierListKey("Some existing-service"),
252                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
253                     .build())
254                 .build())
255             .setSoftConstraints(new SoftConstraintsBuilder()
256                 .setCustomerCode(Arrays.asList("Some customer-code"))
257                 .setCoRouting(new CoRoutingBuilder()
258                     .setServiceIdentifierList(Map.of(
259                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
260                                 .routing.ServiceIdentifierListKey("Some existing-service"),
261                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
262                     .build())
263                 .build())
264                 .build();
265     }
266
267     public static PathComputationRequestInput getPCERequest() {
268         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
269                 .setRequestId("request1")
270                 .build();
271         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
272                 .setServiceFormat(ServiceFormat.Ethernet)
273                 .setServiceRate(Uint32.valueOf(100))
274                 .setClli("clli11")
275                 .setNodeId("XPONDER-2-2")
276                 .setTxDirection(new TxDirectionBuilder().setPort(
277                         new PortBuilder()
278                                 .setPortDeviceName("Some port-device-name")
279                                 .setPortType("Some port-type")
280                                 .setPortName("Some port-name")
281                                 .setPortRack("Some port-rack")
282                                 .setPortShelf("Some port-shelf")
283                                 .setPortSlot("Some port-slot")
284                                 .setPortSubSlot("Some port-sub-slot")
285                                 .build()
286                 ).build())
287                 .setRxDirection(new RxDirectionBuilder().setPort(
288                         new PortBuilder()
289                                 .setPortDeviceName("Some port-device-name")
290                                 .setPortType("Some port-type")
291                                 .setPortName("Some port-name")
292                                 .setPortRack("Some port-rack")
293                                 .setPortShelf("Some port-shelf")
294                                 .setPortSlot("Some port-slot")
295                                 .setPortSubSlot("Some port-sub-slot")
296                                 .build()
297                 ).build())
298                 .build();
299         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
300                 .setServiceFormat(ServiceFormat.Ethernet)
301                 .setServiceRate(Uint32.valueOf(0))
302                 .setClli("Some clli11")
303                 .setNodeId("XPONDER-1-2")
304                 .setTxDirection(new TxDirectionBuilder().setPort(
305                         new PortBuilder()
306                                 .setPortDeviceName("Some port-device-name")
307                                 .setPortType("Some port-type")
308                                 .setPortName("Some port-name")
309                                 .setPortRack("Some port-rack")
310                                 .setPortShelf("Some port-shelf")
311                                 .setPortSlot("Some port-slot")
312                                 .setPortSubSlot("Some port-sub-slot")
313                                 .build()
314                 ).build())
315                 .setRxDirection(new RxDirectionBuilder().setPort(
316                         new PortBuilder()
317                                 .setPortDeviceName("Some port-device-name")
318                                 .setPortType("Some port-type")
319                                 .setPortName("Some port-name")
320                                 .setPortRack("Some port-rack")
321                                 .setPortShelf("Some port-shelf")
322                                 .setPortSlot("Some port-slot")
323                                 .setPortSubSlot("Some port-sub-slot")
324                                 .build()
325                 ).build())
326                 .build();
327         return new PathComputationRequestInputBuilder()
328             .setServiceName("service1")
329             .setResourceReserve(true)
330             .setPceRoutingMetric(PceMetric.HopCount)
331             .setServiceHandlerHeader(serviceHandlerHeader)
332             .setServiceAEnd(serviceAEnd)
333             .setServiceZEnd(serviceZEnd)
334             .setHardConstraints(new HardConstraintsBuilder()
335                 .setCustomerCode(Arrays.asList("Some customer-code"))
336                 .setCoRouting(new CoRoutingBuilder()
337                     .setServiceIdentifierList(Map.of(
338                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
339                                 .routing.ServiceIdentifierListKey("Some existing-service"),
340                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
341                     .build())
342                 .build())
343             .setSoftConstraints(new SoftConstraintsBuilder()
344                 .setCustomerCode(Arrays.asList("Some customer-code"))
345                 .setCoRouting(new CoRoutingBuilder()
346                     .setServiceIdentifierList(Map.of(
347                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
348                                 .routing.ServiceIdentifierListKey("Some existing-service"),
349                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
350                     .build())
351                 .build())
352             .build();
353     }
354
355     public static PathComputationRequestOutput getFailedPCEResultYes() {
356         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
357         ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
358                 .setAckFinalIndicator("Yes")
359                 .setRequestId("request1")
360                 .setResponseCode("Path not calculated")
361                 .setResponseMessage("Service Name is not set");
362         outputBuilder.setConfigurationResponseCommon(configurationResponseCommon.build())
363                 .setResponseParameters(null);
364         return outputBuilder.build();
365     }
366
367     public static PathComputationRequestOutput getPCEResultOk(Long wl) {
368         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
369         ResponseParameters responseParameters = new ResponseParametersBuilder()
370                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
371                 .build();
372         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
373                 .setResponseParameters(responseParameters);
374         return outputBuilder.build();
375     }
376
377     /**
378      * Generate Data for Test 1 request 5-4.
379      * <code>{
380      * "pce:input": {
381      * "pce:service-name": "service 1",
382      * "pce:resource-reserve": "true",
383      * "pce:service-handler-header": {
384      * "pce:request-id": "request 1"
385      * },
386      * "pce:service-a-end": {
387      * "pce:service-rate": "0",
388      * "pce:node-id": "XPONDER-1-2"
389      * },
390      * "pce:service-z-end": {
391      * "pce:service-rate": "0",
392      * "pce:node-id": "XPONDER-3-2"
393      * },
394      * "pce:pce-metric": "hop-count"
395      * }
396      * }</code>
397      *
398      * @return input PathComputationRequestInput data
399      */
400     public static PathComputationRequestInput getPCE_test1_request_54() {
401         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
402                 .setRequestId("request 1")
403                 .build();
404         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
405                 .setServiceRate(Uint32.valueOf(0))
406                 .setNodeId("XPONDER-1-2")
407                 .build();
408         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
409                 .setServiceRate(Uint32.valueOf(0))
410                 .setNodeId("XPONDER-3-2")
411                 .build();
412         return new PathComputationRequestInputBuilder()
413             .setServiceHandlerHeader(serviceHandlerHeader)
414             .setServiceName("service 1")
415             .setResourceReserve(true)
416             .setPceRoutingMetric(PceMetric.HopCount)
417             .setServiceAEnd(serviceAEnd)
418             .setServiceZEnd(serviceZEnd)
419             .build();
420     }
421
422     /**
423      * Generate Data for Test 1 result 5-4.
424      *
425      * @param wl WaveLength
426      * @return output PathComputationRequestOutput data
427      */
428     public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
429         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
430         ResponseParameters responseParameters = new ResponseParametersBuilder()
431                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
432                 .build();
433         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
434                 .setResponseParameters(responseParameters);
435         return outputBuilder.build();
436     }
437
438     /**
439      * Generate Data for Test 2 request 5-4.
440      * <code>{
441      * "pce:input": {
442      * "pce:service-name": "service 1",
443      * "pce:resource-reserve": "true",
444      * "pce:service-handler-header": {
445      * "pce:request-id": "request 1"
446      * },
447      * "pce:service-a-end": {
448      * "pce:service-rate": "0",
449      * "pce:node-id": "XPONDER-1-2"
450      * },
451      * "pce:service-z-end": {
452      * "pce:service-rate": "0",
453      * "pce:node-id": "XPONDER-3-2"
454      * },
455      * "pce:hard-constraints": {
456      * "pce:exclude_": {
457      * "node-id": [ "OpenROADM-2-2" ]
458      * }
459      * },
460      * "pce:pce-metric": "hop-count"
461      * }
462      * }</code>
463      *
464      * @return input PathComputationRequestInput data
465      */
466     public static PathComputationRequestInput getPCE_test2_request_54() {
467         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
468                 .setRequestId("request 1")
469                 .build();
470         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
471                 .setServiceRate(Uint32.valueOf(0))
472                 .setNodeId("XPONDER-1-2")
473                 .build();
474         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
475                 .setServiceRate(Uint32.valueOf(0))
476                 .setNodeId("XPONDER-3-2")
477                 .build();
478         return new PathComputationRequestInputBuilder()
479             .setServiceHandlerHeader(serviceHandlerHeader)
480             .setServiceName("service 1")
481             .setResourceReserve(true)
482             .setPceRoutingMetric(PceMetric.HopCount)
483             .setServiceAEnd(serviceAEnd)
484             .setServiceZEnd(serviceZEnd)
485             .setHardConstraints(new HardConstraintsBuilder()
486                 .setExclude(new ExcludeBuilder()
487                     .setNodeId(Arrays.asList(new NodeIdType("OpenROADM-2-2")))
488                     .build())
489                 .setInclude(new IncludeBuilder()
490                     .setNodeId(Arrays.asList(new NodeIdType("XPONDER-1-2")))
491                     .build())
492                 .setLatency(new LatencyBuilder()
493                     .setMaxLatency(BigDecimal.valueOf(3223))
494                     .build())
495                 .build())
496             .build();
497     }
498
499     /**
500      * Generate Data for Test 2 result 5-4.
501      *
502      * @return output PathComputationRequestOutput data
503      */
504     public static PathComputationRequestOutput getPCE_test2_result_54() {
505         return new PathComputationRequestOutputBuilder()
506             .setConfigurationResponseCommon(createCommonSuccessResponse())
507             .setResponseParameters(new ResponseParametersBuilder()
508                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
509                 .build())
510             .build();
511     }
512
513     /**
514      * Generate Data for Test 2 request 5-4.
515      * <code>{
516      * "pce:input": {
517      * "pce:service-name": "service 1",
518      * "pce:resource-reserve": "true",
519      * "pce:service-handler-header": {
520      * "pce:request-id": "request 1"
521      * },
522      * "pce:service-a-end": {
523      * "pce:service-rate": "0",
524      * "pce:node-id": "XPONDER-1-2"
525      * },
526      * "pce:service-z-end": {
527      * "pce:service-rate": "0",
528      * "pce:node-id": "XPONDER-3-2"
529      * },
530      * "pce:hard-constraints": {
531      * "pce:exclude_": {
532      * "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
533      * }
534      * },
535      * "pce:pce-metric": "hop-count"
536      * }
537      * }</code>
538      *
539      * @return input PathComputationRequestInput data
540      */
541     public static PathComputationRequestInput getPCE_test3_request_54() {
542         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
543                 .setRequestId("request 1")
544                 .build();
545
546         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
547                 .setServiceRate(Uint32.valueOf(100))
548                 .setServiceFormat(ServiceFormat.Ethernet)
549                 .setNodeId("XPONDER-1-2")
550                 .build();
551         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
552                 .setServiceRate(Uint32.valueOf(0))
553                 .setServiceFormat(ServiceFormat.Ethernet)
554                 .setNodeId("XPONDER-3-2")
555                 .build();
556         return new PathComputationRequestInputBuilder()
557             .setServiceHandlerHeader(serviceHandlerHeader)
558             .setServiceName("service 1")
559             .setResourceReserve(true)
560             .setPceRoutingMetric(PceMetric.HopCount)
561             .setServiceAEnd(serviceAEnd)
562             .setServiceZEnd(serviceZEnd)
563             .setHardConstraints(new HardConstraintsBuilder()
564                 .setExclude(new ExcludeBuilder()
565                     .setNodeId(Arrays.asList(new NodeIdType("OpenROADM-2-1"), new NodeIdType("OpenROADM-2-2")))
566                     .build())
567                 .build())
568             .build();
569     }
570
571     /**
572      * Generate Data for Test 3 result 5-4.
573      *
574      * @return output PathComputationRequestOutput data
575      */
576     public static PathComputationRequestOutput getPCE_test3_result_54() {
577         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
578         ResponseParameters responseParameters = new ResponseParametersBuilder()
579                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
580                 .build();
581         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
582                 .setResponseParameters(responseParameters);
583         return outputBuilder.build();
584     }
585
586     public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
587         return new PathComputationRequestInputBuilder()
588                 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
589                     .setRequestId("request 1")
590                     .build())
591                 .setServiceName("service 1")
592                 .setResourceReserve(true)
593                 .setPceRoutingMetric(PceMetric.HopCount)
594                 .setServiceAEnd(new ServiceAEndBuilder()
595                     .setServiceRate(Uint32.valueOf(0))
596                     .setNodeId("XPONDER-1-2")
597                     .build())
598                 .setServiceZEnd(new ServiceZEndBuilder()
599                     .setServiceRate(Uint32.valueOf(0))
600                     .setNodeId("XPONDER-3-2")
601                     .build())
602                 .setHardConstraints(new HardConstraintsBuilder().build())
603                 .setSoftConstraints(new SoftConstraintsBuilder().build())
604                 .build();
605     }
606
607     public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
608         return new PathComputationRequestInputBuilder()
609             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
610                 .setRequestId("request 1")
611                 .build())
612             .setServiceName("service 1")
613             .setResourceReserve(true)
614             .setPceRoutingMetric(PceMetric.HopCount)
615             .setServiceAEnd(new ServiceAEndBuilder()
616                 .setServiceRate(Uint32.valueOf(0))
617                 .setNodeId("XPONDER-1-2")
618                 .build())
619             .setServiceZEnd(new ServiceZEndBuilder()
620                 .setServiceRate(Uint32.valueOf(0))
621                 .setNodeId("XPONDER-3-2")
622                 .build())
623             .build();
624     }
625
626     public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
627         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
628         ResponseParameters responseParameters = new ResponseParametersBuilder()
629                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
630                 .build();
631         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
632                 .setResponseParameters(responseParameters);
633         return outputBuilder.build();
634     }
635
636     private static ConfigurationResponseCommon createCommonSuccessResponse() {
637         ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
638                 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
639                 .setRequestId("request 1")
640                 .setResponseCode(ResponseCodes.RESPONSE_OK)
641                 .setResponseMessage("Path is calculated");
642         return configurationResponseCommon.build();
643     }
644
645     private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
646                                                          long zaWaveLength) {
647         return new PathDescriptionBuilder()
648                 .setAToZDirection(new AToZDirectionBuilder()
649                     .setRate(Uint32.valueOf(azRate))
650                     .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
651                     .build())
652                 .setZToADirection(new ZToADirectionBuilder()
653                     .setRate(Uint32.valueOf(zaRate))
654                     .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
655                     .build())
656                 .build();
657     }
658
659     /**
660      * Generate Data for Test Diversity test 1 request 5-4.
661      * <code>{
662      * "pce:input": {
663      * "pce:service-name": "service 1",
664      * "pce:resource-reserve": "true",
665      * "pce:service-handler-header": {
666      * "pce:request-id": "request 1"
667      * },
668      * "pce:service-a-end": {
669      * "pce:service-rate": "0",
670      * "pce:node-id": "XPONDER-1-1"
671      * },
672      * "pce:service-z-end": {
673      * "pce:service-rate": "0",
674      * "pce:node-id": "XPONDER-3-1"
675      * },
676      * "pce:hard-constraints": {
677      * "pce:diversity": {
678      * "existing-service": ["Path test-1-54"],
679      * "existing-service-applicability": {
680      * "node": "true"
681      * }
682      * }
683      * },
684      * "pce:pce-metric": "hop-count"
685      * }
686      * }</code>
687      *
688      * @param base Path Computation Request Input base
689      * @return input PathComputationRequestInput data
690      */
691     public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
692         return new PathComputationRequestInputBuilder(base)
693             .setServiceName("service 2")
694             .setServiceAEnd(new ServiceAEndBuilder()
695                 .setServiceRate(Uint32.valueOf(0))
696                 .setNodeId("XPONDER-1-1")
697                 .build())
698             .setServiceZEnd(new ServiceZEndBuilder()
699                 .setServiceRate(Uint32.valueOf(0))
700                 .setNodeId("XPONDER-3-1")
701                 .build())
702             .setHardConstraints(new HardConstraintsBuilder()
703                 .setLatency(new LatencyBuilder()
704                     .setMaxLatency(BigDecimal.valueOf(3223))
705                     .build())
706                 .setDiversity(new DiversityBuilder()
707                     .setServiceIdentifierList(Map.of(
708                         new ServiceIdentifierListKey(base.getServiceName()),
709                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity
710                                 .existing.service.constraints.ServiceIdentifierListBuilder()
711                             .setServiceIndentifier(base.getServiceName())
712                             .setServiceApplicability(new ServiceApplicabilityBuilder()
713                                 .setNode(true)
714                                 .build())
715                             .build()))
716                     .build())
717                 .build())
718             .build();
719     }
720
721     public static ServiceCreateInput buildServiceCreateInput() {
722
723         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceAEnd serviceAEnd =
724             new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input
725                     .ServiceAEndBuilder()
726                 .setClli("clli")
727                 .setServiceRate(Uint32.valueOf(0))
728                 .setNodeId(new NodeIdType("XPONDER-1-2"))
729                 .setTxDirection(Map.of(
730                     new TxDirectionKey(Uint8.ZERO),
731                     new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
732                             .TxDirectionBuilder()
733                         .setPort(new PortBuilder().build())
734                         .build()))
735                 .setRxDirection(Map.of(
736                     new RxDirectionKey(Uint8.ZERO),
737                     new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
738                             .RxDirectionBuilder()
739                         .setPort(new PortBuilder().build())
740                         .build()))
741                 .build();
742
743         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceZEnd serviceZEnd =
744             new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input
745                     .ServiceZEndBuilder()
746                 .setClli("clli")
747                 .setServiceRate(Uint32.valueOf(0))
748                 .setNodeId(new NodeIdType("XPONDER-3-2"))
749                 .setTxDirection(Map.of(
750                     new TxDirectionKey(Uint8.ZERO),
751                     new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
752                             .TxDirectionBuilder()
753                         .setPort(new PortBuilder().build())
754                         .build()))
755                 .setRxDirection(Map.of(
756                     new RxDirectionKey(Uint8.ZERO),
757                     new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
758                             .RxDirectionBuilder()
759                         .setPort(new PortBuilder().build())
760                         .build()))
761                 .build();
762
763         return new ServiceCreateInputBuilder()
764             .setCommonId("commonId")
765             .setConnectionType(ConnectionType.Service)
766             .setCustomer("Customer")
767             .setServiceName("service 1")
768             .setServiceAEnd(serviceAEnd)
769             .setServiceZEnd(serviceZEnd)
770             .setSdncRequestHeader(new SdncRequestHeaderBuilder()
771                 .setRequestId("request 1")
772                 .build())
773             .build();
774     }
775
776     public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
777         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
778                 .setRequestId("request1")
779                 .build();
780         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
781                 .setServiceFormat(ServiceFormat.Ethernet)
782                 .setServiceRate(Uint32.valueOf(100))
783                 .setClli("clli11")
784                 .setNodeId(nodeA)
785                 .setTxDirection(new TxDirectionBuilder().setPort(
786                         new PortBuilder()
787                                 .setPortDeviceName("Some port-device-name")
788                                 .setPortType("Some port-type")
789                                 .setPortName("Some port-name")
790                                 .setPortRack("Some port-rack")
791                                 .setPortShelf("Some port-shelf")
792                                 .setPortSlot("Some port-slot")
793                                 .setPortSubSlot("Some port-sub-slot")
794                                 .build()
795                 ).build())
796                 .setRxDirection(new RxDirectionBuilder().setPort(
797                         new PortBuilder()
798                                 .setPortDeviceName("Some port-device-name")
799                                 .setPortType("Some port-type")
800                                 .setPortName("Some port-name")
801                                 .setPortRack("Some port-rack")
802                                 .setPortShelf("Some port-shelf")
803                                 .setPortSlot("Some port-slot")
804                                 .setPortSubSlot("Some port-sub-slot")
805                                 .build()
806                 ).build())
807                 .build();
808         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
809                 .setServiceFormat(ServiceFormat.Ethernet)
810                 .setServiceRate(Uint32.valueOf(0))
811                 .setClli("Some clli11")
812                 .setNodeId(nodeZ)
813                 .setTxDirection(new TxDirectionBuilder().setPort(
814                         new PortBuilder()
815                                 .setPortDeviceName("Some port-device-name")
816                                 .setPortType("Some port-type")
817                                 .setPortName("Some port-name")
818                                 .setPortRack("Some port-rack")
819                                 .setPortShelf("Some port-shelf")
820                                 .setPortSlot("Some port-slot")
821                                 .setPortSubSlot("Some port-sub-slot")
822                                 .build()
823                 ).build())
824                 .setRxDirection(new RxDirectionBuilder().setPort(
825                         new PortBuilder()
826                                 .setPortDeviceName("Some port-device-name")
827                                 .setPortType("Some port-type")
828                                 .setPortName("Some port-name")
829                                 .setPortRack("Some port-rack")
830                                 .setPortShelf("Some port-shelf")
831                                 .setPortSlot("Some port-slot")
832                                 .setPortSubSlot("Some port-sub-slot")
833                                 .build()
834                 ).build())
835                 .build();
836         return new PathComputationRequestInputBuilder()
837             .setServiceName("service1")
838             .setResourceReserve(true)
839             .setPceRoutingMetric(PceMetric.HopCount)
840             .setServiceHandlerHeader(serviceHandlerHeader)
841             .setServiceAEnd(serviceAEnd)
842             .setServiceZEnd(serviceZEnd)
843             .setHardConstraints(new HardConstraintsBuilder()
844                 .setCustomerCode(Arrays.asList("Some customer-code"))
845                 .setCoRouting(new CoRoutingBuilder()
846                     .setServiceIdentifierList(Map.of(
847                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
848                                 .routing.ServiceIdentifierListKey("Some existing-service"),
849                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
850                     .build())
851                 .build())
852             .setSoftConstraints(new SoftConstraintsBuilder()
853                 .setCustomerCode(Arrays.asList("Some customer-code"))
854                 .setCoRouting(new CoRoutingBuilder()
855                     .setServiceIdentifierList(Map.of(
856                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
857                                 .routing.ServiceIdentifierListKey("Some existing-service"),
858                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
859                     .build())
860                 .build())
861             .build();
862     }
863 }