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