Add customer name to pathComputationRequest input
[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.constraints.co
242                                 .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.constraints.co
251                                 .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.constraints.co
327                                 .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.constraints.co
336                                 .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
412                                                 .http.org.openroadm.routing.constraints.rev221209
413                                                 .constraints.co.routing.ServiceIdentifierListKey("test"),
414                                         new ServiceIdentifierListBuilder().setServiceIdentifier("test").build()))
415                                 .build())
416                         .build())
417                 .setSoftConstraints(new SoftConstraintsBuilder()
418                         .setCustomerCode(Set.of("Some customer-code"))
419                         .setCoRouting(new CoRoutingBuilder()
420                                 .setServiceIdentifierList(Map.of(
421                                         new org.opendaylight.yang.gen.v1
422                                                 .http.org.openroadm.routing.constraints.rev221209
423                                                 .constraints.co.routing.ServiceIdentifierListKey("test"),
424                                         new ServiceIdentifierListBuilder().setServiceIdentifier("test").build()))
425                                 .build())
426                         .build())
427                 .setEndpoints(new EndpointsBuilder()
428                         .setAEndTp("AendTP")
429                         .setZEndTp("ZendTP")
430                         .build())
431                 .build();
432     }
433
434     public static PathComputationRequestOutput getFailedPCEResultYes() {
435         return new PathComputationRequestOutputBuilder()
436             .setConfigurationResponseCommon(
437                 new ConfigurationResponseCommonBuilder()
438                     .setAckFinalIndicator("Yes")
439                     .setRequestId("request1")
440                     .setResponseCode("Path not calculated")
441                     .setResponseMessage("Service Name is not set")
442                     .build())
443             .setResponseParameters(null)
444             .build();
445     }
446
447     public static PathComputationRequestOutput getPCEResultOk(Long wl) {
448         return new PathComputationRequestOutputBuilder()
449             .setConfigurationResponseCommon(createCommonSuccessResponse())
450             .setResponseParameters(
451                 new ResponseParametersBuilder()
452                     .setPathDescription(createPathDescription(0L, wl, 0L, wl))
453                     .build())
454             .build();
455     }
456
457     /**
458      * Generate Data for Test 1 request 5-4.
459      * <code>{
460      * "pce:input": {
461      * "pce:service-name": "service 1",
462      * "pce:resource-reserve": "true",
463      * "pce:service-handler-header": {
464      * "pce:request-id": "request 1"
465      * },
466      * "pce:service-a-end": {
467      * "pce:service-rate": "0",
468      * "pce:node-id": "XPONDER-1-2"
469      * },
470      * "pce:service-z-end": {
471      * "pce:service-rate": "0",
472      * "pce:node-id": "XPONDER-3-2"
473      * },
474      * "pce:pce-metric": "hop-count"
475      * }
476      * }</code>
477      * @return input PathComputationRequestInput data
478      */
479     public static PathComputationRequestInput getPCE_test1_request_54() {
480         return new PathComputationRequestInputBuilder()
481             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
482                 .setRequestId("request 1")
483                 .build())
484             .setServiceName("service 1")
485             .setResourceReserve(true)
486             .setPceRoutingMetric(PceMetric.HopCount)
487             .setServiceAEnd(new ServiceAEndBuilder()
488                 .setServiceRate(Uint32.valueOf(0))
489                 .setNodeId("XPONDER-1-2")
490                 .build())
491             .setServiceZEnd(new ServiceZEndBuilder()
492                 .setServiceRate(Uint32.valueOf(0))
493                 .setNodeId("XPONDER-3-2")
494                 .build())
495             .build();
496     }
497
498     /**
499      * Generate Data for Test 1 result 5-4.
500      * @param  wl WaveLength
501      * @return    output PathComputationRequestOutput data
502      */
503     public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
504         return new PathComputationRequestOutputBuilder()
505             .setConfigurationResponseCommon(createCommonSuccessResponse())
506             .setResponseParameters(
507                 new ResponseParametersBuilder()
508                     .setPathDescription(createPathDescription(0L, wl, 0L, wl))
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-2" ]
533      * }
534      * },
535      * "pce:pce-metric": "hop-count"
536      * }
537      * }</code>
538      * @return input PathComputationRequestInput data
539      */
540     public static PathComputationRequestInput getPCE_test2_request_54() {
541         return new PathComputationRequestInputBuilder()
542             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
543                 .setRequestId("request 1")
544                 .build())
545             .setServiceName("service 1")
546             .setResourceReserve(true)
547             .setPceRoutingMetric(PceMetric.HopCount)
548             .setServiceAEnd(new ServiceAEndBuilder()
549                 .setServiceRate(Uint32.valueOf(0))
550                 .setNodeId("XPONDER-1-2")
551                 .build())
552             .setServiceZEnd(new ServiceZEndBuilder()
553                 .setServiceRate(Uint32.valueOf(0))
554                 .setNodeId("XPONDER-3-2")
555                 .build())
556             .setHardConstraints(new HardConstraintsBuilder()
557                 .setExclude(new ExcludeBuilder()
558                     .setNodeId(List.of(new NodeIdType("OpenROADM-2-2")))
559                     .build())
560                 .setInclude(new IncludeBuilder()
561                     .setNodeId(List.of(new NodeIdType("XPONDER-1-2")))
562                     .build())
563                 .setLatency(new LatencyBuilder()
564                     .setMaxLatency(Decimal64.valueOf("3223"))
565                     .build())
566                 .build())
567             .build();
568     }
569
570     /**
571      * Generate Data for Test 2 result 5-4.
572      * @return output PathComputationRequestOutput data
573      */
574     public static PathComputationRequestOutput getPCE_test2_result_54() {
575         return new PathComputationRequestOutputBuilder()
576             .setConfigurationResponseCommon(createCommonSuccessResponse())
577             .setResponseParameters(
578                 new ResponseParametersBuilder()
579                     .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
580                     .build())
581             .build();
582     }
583
584     public static PathComputationRerouteRequestInput getPCEReroute() {
585         return new PathComputationRerouteRequestInputBuilder()
586                 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
587                         .setRequestId("request 1")
588                         .build())
589                 .setPceRoutingMetric(PceMetric.HopCount)
590                 .setServiceAEnd(new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205
591                         .path.computation.reroute.request.input.ServiceAEndBuilder()
592                         .setServiceRate(Uint32.valueOf(100))
593                         .setServiceFormat(ServiceFormat.Ethernet)
594                         .setNodeId("XPONDER-1-2")
595                         .build())
596                 .setServiceZEnd(new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205
597                         .path.computation.reroute.request.input.ServiceZEndBuilder()
598                         .setServiceRate(Uint32.valueOf(0))
599                         .setServiceFormat(ServiceFormat.Ethernet)
600                         .setNodeId("XPONDER-3-2")
601                         .build())
602                 .setHardConstraints(new HardConstraintsBuilder()
603                         .setExclude(new ExcludeBuilder()
604                                 .setNodeId(List.of(
605                                         new NodeIdType("OpenROADM-2-1"),
606                                         new NodeIdType("OpenROADM-2-2")))
607                                 .build())
608                         .build())
609                 .setEndpoints(new EndpointsBuilder()
610                         .setAEndTp("AendTP")
611                         .setZEndTp("ZendTP")
612                         .build())
613                 .build();
614     }
615
616     /**
617      * Generate Data for Test 2 request 5-4.
618      * <code>{
619      * "pce:input": {
620      * "pce:service-name": "service 1",
621      * "pce:resource-reserve": "true",
622      * "pce:service-handler-header": {
623      * "pce:request-id": "request 1"
624      * },
625      * "pce:service-a-end": {
626      * "pce:service-rate": "0",
627      * "pce:node-id": "XPONDER-1-2"
628      * },
629      * "pce:service-z-end": {
630      * "pce:service-rate": "0",
631      * "pce:node-id": "XPONDER-3-2"
632      * },
633      * "pce:hard-constraints": {
634      * "pce:exclude_": {
635      * "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
636      * }
637      * },
638      * "pce:pce-metric": "hop-count"
639      * }
640      * }</code>
641      * @return input PathComputationRequestInput data
642      */
643     public static PathComputationRequestInput getPCE_test3_request_54() {
644         return new PathComputationRequestInputBuilder()
645             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
646                 .setRequestId("request 1")
647                 .build())
648             .setServiceName("service 1")
649             .setResourceReserve(true)
650             .setPceRoutingMetric(PceMetric.HopCount)
651             .setServiceAEnd(new ServiceAEndBuilder()
652                 .setServiceRate(Uint32.valueOf(100))
653                 .setServiceFormat(ServiceFormat.Ethernet)
654                 .setNodeId("XPONDER-1-2")
655                 .build())
656             .setServiceZEnd(new ServiceZEndBuilder()
657                 .setServiceRate(Uint32.valueOf(0))
658                 .setServiceFormat(ServiceFormat.Ethernet)
659                 .setNodeId("XPONDER-3-2")
660                 .build())
661             .setHardConstraints(new HardConstraintsBuilder()
662                 .setExclude(new ExcludeBuilder()
663                     .setNodeId(List.of(
664                         new NodeIdType("OpenROADM-2-1"),
665                         new NodeIdType("OpenROADM-2-2")))
666                     .build())
667                 .build())
668             .build();
669     }
670
671     /**
672      * Generate Data for Test 3 result 5-4.
673      * @return output PathComputationRequestOutput data
674      */
675     public static PathComputationRequestOutput getPCE_test3_result_54() {
676         return new PathComputationRequestOutputBuilder()
677             .setConfigurationResponseCommon(createCommonSuccessResponse())
678             .setResponseParameters(new ResponseParametersBuilder()
679                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
680                 .build())
681             .build();
682     }
683
684     public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
685         return new PathComputationRequestInputBuilder()
686             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
687                 .setRequestId("request 1")
688                 .build())
689             .setServiceName("service 1")
690             .setResourceReserve(true)
691             .setPceRoutingMetric(PceMetric.HopCount)
692             .setServiceAEnd(new ServiceAEndBuilder()
693                 .setServiceRate(Uint32.valueOf(0))
694                 .setNodeId("XPONDER-1-2")
695                 .build())
696             .setServiceZEnd(new ServiceZEndBuilder()
697                 .setServiceRate(Uint32.valueOf(0))
698                 .setNodeId("XPONDER-3-2")
699                 .build())
700             .setHardConstraints(new HardConstraintsBuilder().build())
701             .setSoftConstraints(new SoftConstraintsBuilder().build())
702             .build();
703     }
704
705     public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
706         return new PathComputationRequestInputBuilder()
707             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
708                 .setRequestId("request 1")
709                 .build())
710             .setServiceName("service 1")
711             .setResourceReserve(true)
712             .setPceRoutingMetric(PceMetric.HopCount)
713             .setServiceAEnd(new ServiceAEndBuilder()
714                 .setServiceRate(Uint32.valueOf(0))
715                 .setNodeId("XPONDER-1-2")
716                 .build())
717             .setServiceZEnd(new ServiceZEndBuilder()
718                 .setServiceRate(Uint32.valueOf(0))
719                 .setNodeId("XPONDER-3-2")
720                 .build())
721             .build();
722     }
723
724     public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
725         return new PathComputationRequestOutputBuilder()
726             .setConfigurationResponseCommon(createCommonSuccessResponse())
727             .setResponseParameters(new ResponseParametersBuilder()
728                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
729                 .build())
730             .build();
731     }
732
733     private static ConfigurationResponseCommon createCommonSuccessResponse() {
734         return new ConfigurationResponseCommonBuilder()
735             .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
736             .setRequestId("request 1")
737             .setResponseCode(ResponseCodes.RESPONSE_OK)
738             .setResponseMessage("Path is calculated")
739             .build();
740     }
741
742     private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
743                                                          long zaWaveLength) {
744         return new PathDescriptionBuilder()
745             .setAToZDirection(new AToZDirectionBuilder()
746                 .setRate(Uint32.valueOf(azRate))
747                 .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
748                 .build())
749             .setZToADirection(new ZToADirectionBuilder()
750                 .setRate(Uint32.valueOf(zaRate))
751                 .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
752                 .build())
753             .build();
754     }
755
756     /**
757      * Generate Data for Test Diversity test 1 request 5-4.
758      * <code>{
759      * "pce:input": {
760      * "pce:service-name": "service 1",
761      * "pce:resource-reserve": "true",
762      * "pce:service-handler-header": {
763      * "pce:request-id": "request 1"
764      * },
765      * "pce:service-a-end": {
766      * "pce:service-rate": "0",
767      * "pce:node-id": "XPONDER-1-1"
768      * },
769      * "pce:service-z-end": {
770      * "pce:service-rate": "0",
771      * "pce:node-id": "XPONDER-3-1"
772      * },
773      * "pce:hard-constraints": {
774      * "pce:diversity": {
775      * "existing-service": ["Path test-1-54"],
776      * "existing-service-applicability": {
777      * "node": "true"
778      * }
779      * }
780      * },
781      * "pce:pce-metric": "hop-count"
782      * }
783      * }</code>
784      * @param  base Path Computation Request Input base
785      * @return      input PathComputationRequestInput data
786      */
787     public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
788         return new PathComputationRequestInputBuilder(base)
789             .setServiceName("service 2")
790             .setServiceAEnd(new ServiceAEndBuilder()
791                 .setServiceRate(Uint32.valueOf(0))
792                 .setNodeId("XPONDER-1-1")
793                 .build())
794             .setServiceZEnd(new ServiceZEndBuilder()
795                 .setServiceRate(Uint32.valueOf(0))
796                 .setNodeId("XPONDER-3-1")
797                 .build())
798             .setHardConstraints(new HardConstraintsBuilder()
799                 .setLatency(new LatencyBuilder()
800                     .setMaxLatency(Decimal64.valueOf("3223"))
801                     .build())
802                 .setDiversity(new DiversityBuilder()
803                     .setServiceIdentifierList(Map.of(
804                         new ServiceIdentifierListKey(base.getServiceName()),
805                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209.diversity
806                                 .existing.service.constraints.ServiceIdentifierListBuilder()
807                             .setServiceIdentifier(base.getServiceName())
808                             .setServiceApplicability(new ServiceApplicabilityBuilder()
809                                 .setNode(true)
810                                 .build())
811                             .build()))
812                     .build())
813                 .build())
814             .build();
815     }
816
817     public static ServiceCreateInput buildServiceCreateInput() {
818         return new ServiceCreateInputBuilder()
819             .setCommonId("commonId")
820             .setConnectionType(ConnectionType.Service)
821             .setCustomer("Customer")
822             .setServiceName("service 1")
823             .setServiceAEnd(
824                 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.create.input
825                         .ServiceAEndBuilder()
826                     .setClli("clli")
827                     .setServiceRate(Uint32.valueOf(0))
828                     .setNodeId(new NodeIdType("XPONDER-1-2"))
829                     .setTxDirection(Map.of(
830                         new TxDirectionKey(Uint8.ZERO),
831                         new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service
832                                 .endpoint.TxDirectionBuilder()
833                             .setPort(new PortBuilder().build())
834                             .build()))
835                     .setRxDirection(Map.of(
836                         new RxDirectionKey(Uint8.ZERO),
837                         new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service
838                                 .endpoint.RxDirectionBuilder()
839                             .setPort(new PortBuilder().build())
840                             .build()))
841                     .build())
842             .setServiceZEnd(
843                 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.create.input
844                         .ServiceZEndBuilder()
845                     .setClli("clli")
846                     .setServiceRate(Uint32.valueOf(0))
847                     .setNodeId(new NodeIdType("XPONDER-3-2"))
848                     .setTxDirection(Map.of(
849                         new TxDirectionKey(Uint8.ZERO),
850                         new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service
851                                 .endpoint.TxDirectionBuilder()
852                             .setPort(new PortBuilder().build())
853                             .build()))
854                     .setRxDirection(Map.of(
855                         new RxDirectionKey(Uint8.ZERO),
856                         new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service
857                                 .endpoint.RxDirectionBuilder()
858                             .setPort(new PortBuilder().build())
859                             .build()))
860                     .build())
861             .setSdncRequestHeader(
862                 new SdncRequestHeaderBuilder()
863                     .setRequestId("request 1")
864                     .build())
865             .build();
866     }
867
868     public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
869         return new PathComputationRequestInputBuilder()
870             .setServiceName("service1")
871             .setResourceReserve(true)
872             .setPceRoutingMetric(PceMetric.HopCount)
873             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("request1").build())
874             .setServiceAEnd(new ServiceAEndBuilder()
875                 .setServiceFormat(ServiceFormat.Ethernet)
876                 .setServiceRate(Uint32.valueOf(100))
877                 .setClli("clli11")
878                 .setNodeId(nodeA)
879                 .setTxDirection(new TxDirectionBuilder()
880                     .setPort(new PortBuilder()
881                         .setPortDeviceName("Some port-device-name")
882                         .setPortType("Some port-type")
883                         .setPortName("Some port-name")
884                         .setPortRack("Some port-rack")
885                         .setPortShelf("Some port-shelf")
886                         .setPortSlot("Some port-slot")
887                         .setPortSubSlot("Some port-sub-slot")
888                         .build())
889                     .build())
890                 .setRxDirection(new RxDirectionBuilder()
891                     .setPort(new PortBuilder()
892                         .setPortDeviceName("Some port-device-name")
893                         .setPortType("Some port-type")
894                         .setPortName("Some port-name")
895                         .setPortRack("Some port-rack")
896                         .setPortShelf("Some port-shelf")
897                         .setPortSlot("Some port-slot")
898                         .setPortSubSlot("Some port-sub-slot")
899                         .build())
900                     .build())
901                 .build())
902             .setServiceZEnd(new ServiceZEndBuilder()
903                 .setServiceFormat(ServiceFormat.Ethernet)
904                 .setServiceRate(Uint32.valueOf(0))
905                 .setClli("Some clli11")
906                 .setNodeId(nodeZ)
907                 .setTxDirection(new TxDirectionBuilder()
908                     .setPort(new PortBuilder()
909                         .setPortDeviceName("Some port-device-name")
910                         .setPortType("Some port-type")
911                         .setPortName("Some port-name")
912                         .setPortRack("Some port-rack")
913                         .setPortShelf("Some port-shelf")
914                         .setPortSlot("Some port-slot")
915                         .setPortSubSlot("Some port-sub-slot")
916                         .build())
917                     .build())
918                 .setRxDirection(new RxDirectionBuilder()
919                     .setPort(new PortBuilder()
920                         .setPortDeviceName("Some port-device-name")
921                         .setPortType("Some port-type")
922                         .setPortName("Some port-name")
923                         .setPortRack("Some port-rack")
924                         .setPortShelf("Some port-shelf")
925                         .setPortSlot("Some port-slot")
926                         .setPortSubSlot("Some port-sub-slot")
927                         .build())
928                     .build())
929                 .build())
930             .setHardConstraints(new HardConstraintsBuilder()
931                 .setCustomerCode(Set.of("Some customer-code"))
932                 .setCoRouting(new CoRoutingBuilder()
933                     .setServiceIdentifierList(Map.of(
934                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209.constraints.co
935                                 .routing.ServiceIdentifierListKey("Some existing-service"),
936                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
937                     .build())
938                 .build())
939             .setSoftConstraints(new SoftConstraintsBuilder()
940                 .setCustomerCode(Set.of("Some customer-code"))
941                 .setCoRouting(new CoRoutingBuilder()
942                     .setServiceIdentifierList(Map.of(
943                         new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209.constraints.co
944                                 .routing.ServiceIdentifierListKey("Some existing-service"),
945                         new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
946                     .build())
947                 .build())
948             .build();
949     }
950 }