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