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