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