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