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