Upgrade to Service Path 1.7
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / utils / PceTestData.java
1 /*
2  * Copyright © 2017 AT&T, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.transportpce.pce.utils;
9
10 import java.util.Arrays;
11 import org.opendaylight.transportpce.common.ResponseCodes;
12 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
13 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutputBuilder;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEnd;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEndBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEnd;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEndBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommon;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommonBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.CoRoutingBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.GeneralBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.DiversityBuilder;
37 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.ExcludeBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
39 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParameters;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParametersBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescription;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescriptionBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeader;
49 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
50
51 public final class PceTestData {
52
53     private PceTestData() {
54     }
55
56     public static PathComputationRequestInput getEmptyPCERequest() {
57         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
58                 .setRequestId("request1")
59                 .build();
60         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
61                 .setServiceHandlerHeader(serviceHandlerHeader)
62                 .build();
63         return input;
64     }
65
66     public static PathComputationRequestInput getPCERequest() {
67         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
68                 .setRequestId("request1")
69                 .build();
70         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
71                 .setServiceFormat(ServiceFormat.Ethernet)
72                 .setServiceRate(0L)
73                 .setClli("clli11")
74                 .setNodeId("XPONDER-2-2")
75                 .setTxDirection(new TxDirectionBuilder().setPort(
76                         new PortBuilder()
77                                 .setPortDeviceName("Some port-device-name")
78                                 .setPortType("Some port-type")
79                                 .setPortName("Some port-name")
80                                 .setPortRack("Some port-rack")
81                                 .setPortShelf("Some port-shelf")
82                                 .setPortSlot("Some port-slot")
83                                 .setPortSubSlot("Some port-sub-slot")
84                                 .build()
85                 ).build())
86                 .setRxDirection(new RxDirectionBuilder().setPort(
87                         new PortBuilder()
88                                 .setPortDeviceName("Some port-device-name")
89                                 .setPortType("Some port-type")
90                                 .setPortName("Some port-name")
91                                 .setPortRack("Some port-rack")
92                                 .setPortShelf("Some port-shelf")
93                                 .setPortSlot("Some port-slot")
94                                 .setPortSubSlot("Some port-sub-slot")
95                                 .build()
96                 ).build())
97                 .build();
98         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
99                 .setServiceFormat(ServiceFormat.Ethernet)
100                 .setServiceRate(0L)
101                 .setClli("Some clli11")
102                 .setNodeId("XPONDER-1-2")
103                 .setTxDirection(new TxDirectionBuilder().setPort(
104                         new PortBuilder()
105                                 .setPortDeviceName("Some port-device-name")
106                                 .setPortType("Some port-type")
107                                 .setPortName("Some port-name")
108                                 .setPortRack("Some port-rack")
109                                 .setPortShelf("Some port-shelf")
110                                 .setPortSlot("Some port-slot")
111                                 .setPortSubSlot("Some port-sub-slot")
112                                 .build()
113                 ).build())
114                 .setRxDirection(new RxDirectionBuilder().setPort(
115                         new PortBuilder()
116                                 .setPortDeviceName("Some port-device-name")
117                                 .setPortType("Some port-type")
118                                 .setPortName("Some port-name")
119                                 .setPortRack("Some port-rack")
120                                 .setPortShelf("Some port-shelf")
121                                 .setPortSlot("Some port-slot")
122                                 .setPortSubSlot("Some port-sub-slot")
123                                 .build()
124                 ).build())
125                 .build();
126         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
127             .setServiceName("service1")
128             .setResourceReserve(true)
129             .setPceMetric(PceMetric.HopCount)
130             .setLocallyProtectedLinks(true)
131             .setServiceHandlerHeader(serviceHandlerHeader)
132             .setServiceAEnd(serviceAEnd)
133             .setServiceZEnd(serviceZEnd)
134             .setHardConstraints(new HardConstraintsBuilder()
135             .setCustomerCode(Arrays.asList("Some customer-code"))
136             .setCoRoutingOrGeneral(new CoRoutingBuilder()
137             .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints
138                  .rev171017.constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
139             .setExistingService(Arrays.asList("Some existing-service"))
140             .build())
141             .build())
142             .build())
143             .setSoftConstraints(new SoftConstraintsBuilder()
144             .setCustomerCode(Arrays.asList("Some customer-code"))
145             .setCoRoutingOrGeneral(new CoRoutingBuilder()
146             .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints
147                 .rev171017.constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
148             .setExistingService(Arrays.asList("Some existing-service"))
149             .build())
150             .build())
151             .build())
152             .build();
153         return input;
154     }
155
156     public static PathComputationRequestOutput getFailedPCEResultYes() {
157         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
158         ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
159                 .setAckFinalIndicator("Yes")
160                 .setRequestId("request1")
161                 .setResponseCode("Path not calculated")
162                 .setResponseMessage("Service Name is not set");
163         outputBuilder.setConfigurationResponseCommon(configurationResponseCommon.build())
164                 .setResponseParameters(null);
165         return outputBuilder.build();
166     }
167
168     public static PathComputationRequestOutput getPCEResultOk(Long wl) {
169         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
170         ResponseParameters responseParameters = new ResponseParametersBuilder()
171                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
172                 .build();
173         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
174                 .setResponseParameters(responseParameters);
175         return outputBuilder.build();
176     }
177
178     /**
179      * Generate Data for Test 1 request 5-4.
180      * <code>{
181        "pce:input": {
182          "pce:service-name": "service 1",
183          "pce:resource-reserve": "true",
184          "pce:service-handler-header": {
185            "pce:request-id": "request 1"
186          },
187          "pce:service-a-end": {
188            "pce:service-rate": "0",
189            "pce:node-id": "XPONDER-1-2"
190          },
191          "pce:service-z-end": {
192            "pce:service-rate": "0",
193            "pce:node-id": "XPONDER-3-2"
194          },
195          "pce:pce-metric": "hop-count"
196        }
197      }</code>
198      *
199      * @return input PathComputationRequestInput data
200      */
201     public static PathComputationRequestInput getPCE_test1_request_54() {
202         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
203                 .setRequestId("request 1")
204                 .build();
205         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
206                 .setServiceRate(0L)
207                 .setNodeId("XPONDER-1-2")
208                 .build();
209         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
210                 .setServiceRate(0L)
211                 .setNodeId("XPONDER-3-2")
212                 .build();
213         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
214                 .setServiceHandlerHeader(serviceHandlerHeader)
215                 .setServiceName("service 1")
216                 .setResourceReserve(true)
217                 .setPceMetric(PceMetric.HopCount)
218                 .setServiceAEnd(serviceAEnd)
219                 .setServiceZEnd(serviceZEnd)
220                 .build();
221         return input;
222     }
223
224     /**
225      * Generate Data for Test 1 result 5-4.
226      * @param wl WaveLength
227      *
228      * @return output PathComputationRequestOutput data
229      */
230     public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
231         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
232         ResponseParameters responseParameters = new ResponseParametersBuilder()
233                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
234                 .build();
235         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
236                 .setResponseParameters(responseParameters);
237         return outputBuilder.build();
238     }
239
240     /**
241      * Generate Data for Test 2 request 5-4.
242      *<code>{
243        "pce:input": {
244          "pce:service-name": "service 1",
245          "pce:resource-reserve": "true",
246          "pce:service-handler-header": {
247            "pce:request-id": "request 1"
248          },
249          "pce:service-a-end": {
250            "pce:service-rate": "0",
251            "pce:node-id": "XPONDER-1-2"
252          },
253          "pce:service-z-end": {
254            "pce:service-rate": "0",
255            "pce:node-id": "XPONDER-3-2"
256          },
257          "pce:hard-constraints": {
258            "pce:exclude_": {
259              "node-id": [ "OpenROADM-2-2" ]
260            }
261          },
262          "pce:pce-metric": "hop-count"
263        }
264      }</code>
265      * @return input PathComputationRequestInput data
266      */
267     public static PathComputationRequestInput getPCE_test2_request_54() {
268         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
269                 .setRequestId("request 1")
270                 .build();
271         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
272                 .setServiceRate(0L)
273                 .setNodeId("XPONDER-1-2")
274                 .build();
275         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
276                 .setServiceRate(0L)
277                 .setNodeId("XPONDER-3-2")
278                 .build();
279         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
280                 .setServiceHandlerHeader(serviceHandlerHeader)
281                 .setServiceName("service 1")
282                 .setResourceReserve(true)
283                 .setPceMetric(PceMetric.HopCount)
284                 .setServiceAEnd(serviceAEnd)
285                 .setServiceZEnd(serviceZEnd)
286                 .setHardConstraints(new HardConstraintsBuilder()
287                         .setCoRoutingOrGeneral(new GeneralBuilder()
288                                 .setExclude(new ExcludeBuilder()
289                                         .setNodeId(Arrays.asList("OpenROADM-2-2"))
290                                         .build())
291                                 .build())
292                         .build())
293                 .build();
294         return input;
295     }
296
297     /**
298      * Generate Data for Test 2 result 5-4.
299      * @return output PathComputationRequestOutput data
300      */
301     public static PathComputationRequestOutput getPCE_test2_result_54() {
302         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
303         ResponseParameters responseParameters = new ResponseParametersBuilder()
304                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
305                 .build();
306         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
307                 .setResponseParameters(responseParameters);
308         return outputBuilder.build();
309     }
310
311     /**
312      * Generate Data for Test 2 request 5-4.
313      *<code>{
314        "pce:input": {
315          "pce:service-name": "service 1",
316          "pce:resource-reserve": "true",
317          "pce:service-handler-header": {
318            "pce:request-id": "request 1"
319          },
320          "pce:service-a-end": {
321            "pce:service-rate": "0",
322            "pce:node-id": "XPONDER-1-2"
323          },
324          "pce:service-z-end": {
325            "pce:service-rate": "0",
326            "pce:node-id": "XPONDER-3-2"
327          },
328          "pce:hard-constraints": {
329            "pce:exclude_": {
330              "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
331            }
332          },
333          "pce:pce-metric": "hop-count"
334        }
335      }</code>
336      * @return input PathComputationRequestInput data
337      */
338     public static PathComputationRequestInput getPCE_test3_request_54() {
339         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
340                 .setRequestId("request 1")
341                 .build();
342         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
343                 .setServiceRate(0L)
344                 .setNodeId("XPONDER-1-2")
345                 .build();
346         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
347                 .setServiceRate(0L)
348                 .setNodeId("XPONDER-3-2")
349                 .build();
350         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
351                 .setServiceHandlerHeader(serviceHandlerHeader)
352                 .setServiceName("service 1")
353                 .setResourceReserve(true)
354                 .setPceMetric(PceMetric.HopCount)
355                 .setServiceAEnd(serviceAEnd)
356                 .setServiceZEnd(serviceZEnd)
357                 .setHardConstraints(new HardConstraintsBuilder()
358                         .setCoRoutingOrGeneral(new GeneralBuilder()
359                                 .setExclude(new ExcludeBuilder()
360                                         .setNodeId(Arrays.asList("OpenROADM-2-1", "OpenROADM-2-2"))
361                                         .build())
362                                 .build())
363                         .build())
364                 .build();
365         return input;
366     }
367
368     /**
369      * Generate Data for Test 3 result 5-4.
370      * @return output PathComputationRequestOutput data
371      */
372     public static PathComputationRequestOutput getPCE_test3_result_54() {
373         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
374         ResponseParameters responseParameters = new ResponseParametersBuilder()
375                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
376                 .build();
377         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
378                 .setResponseParameters(responseParameters);
379         return outputBuilder.build();
380     }
381
382     public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
383         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
384                 .setRequestId("request 1")
385                 .build();
386         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
387                 .setServiceRate(0L)
388                 .setNodeId("XPONDER-1-2")
389                 .build();
390         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
391                 .setServiceRate(0L)
392                 .setNodeId("XPONDER-3-2")
393                 .build();
394         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
395                 .setServiceHandlerHeader(serviceHandlerHeader)
396                 .setServiceName("service 1")
397                 .setResourceReserve(true)
398                 .setPceMetric(PceMetric.HopCount)
399                 .setServiceAEnd(serviceAEnd)
400                 .setServiceZEnd(serviceZEnd)
401                 .build();
402         return input;
403     }
404
405     public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
406         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
407         ResponseParameters responseParameters = new ResponseParametersBuilder()
408                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
409                 .build();
410         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
411                 .setResponseParameters(responseParameters);
412         return outputBuilder.build();
413     }
414
415     private static ConfigurationResponseCommon createCommonSuccessResponse() {
416         ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
417                 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
418                 .setRequestId("request 1")
419                 .setResponseCode(ResponseCodes.RESPONSE_OK)
420                 .setResponseMessage("Path is calculated");
421         return configurationResponseCommon.build();
422     }
423
424     private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
425         long zaWaveLength) {
426         AToZDirection atozDirection = new AToZDirectionBuilder()
427                 .setRate(azRate)
428                 .setAToZWavelengthNumber(azWaveLength)
429                 .setAToZ(null)
430                 .build();
431         ZToADirection ztoaDirection = new ZToADirectionBuilder()
432                 .setRate(zaRate)
433                 .setZToAWavelengthNumber(zaWaveLength)
434                 .setZToA(null)
435                 .build();
436         PathDescription pathDescription = new PathDescriptionBuilder()
437                 .setAToZDirection(atozDirection)
438                 .setZToADirection(ztoaDirection)
439                 .build();
440         return pathDescription;
441     }
442
443     /**
444      * Generate Data for Test Diversity test 1 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-1"
455          },
456          "pce:service-z-end": {
457            "pce:service-rate": "0",
458            "pce:node-id": "XPONDER-3-1"
459          },
460          "pce:hard-constraints": {
461            "pce:diversity": {
462             "existing-service": ["Path test-1-54"],
463             "existing-service-applicability": {
464                 "node": "true"
465             }
466            }
467          },
468          "pce:pce-metric": "hop-count"
469        }
470      }</code>
471      * @param base Path Computation Request Input base
472      *
473      * @return input PathComputationRequestInput data
474      */
475     public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
476
477         ExistingServiceApplicability nodeTrue = new ExistingServiceApplicabilityBuilder()
478                 .setNode(true).build();
479
480         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
481                 .setServiceRate(0L)
482                 .setNodeId("XPONDER-1-1")
483                 .build();
484         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
485                 .setServiceRate(0L)
486                 .setNodeId("XPONDER-3-1")
487                 .build();
488
489         PathComputationRequestInput input = new PathComputationRequestInputBuilder(base)
490                 .setServiceName("service 2")
491                 .setServiceAEnd(serviceAEnd)
492                 .setServiceZEnd(serviceZEnd)
493                 .setHardConstraints(new HardConstraintsBuilder()
494                         .setCoRoutingOrGeneral(new GeneralBuilder()
495                                 .setDiversity(new DiversityBuilder()
496                                         .setExistingService(Arrays.asList(base.getServiceName()))
497                                         .setExistingServiceApplicability(nodeTrue)
498                                         .build())
499                                 .build())
500                         .build())
501                 .build();
502         return input;
503     }
504
505     public static ServiceCreateInput buildServiceCreateInput() {
506
507         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd serviceAEnd =
508             new org.opendaylight.yang.gen.v1.http.org.openroadm.service
509                 .rev190531.service.create.input.ServiceAEndBuilder()
510                 .setClli("clli")
511                 .setServiceRate((long)0)
512                 .setNodeId(new NodeIdType("XPONDER-1-2"))
513                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
514                     .rev190531.service.endpoint.TxDirectionBuilder()
515                     .setPort(new PortBuilder().build())
516                     .build())
517                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
518                     .rev190531.service.endpoint.RxDirectionBuilder()
519                     .setPort(new PortBuilder().build())
520                     .build())
521                 .build();
522
523         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd serviceZEnd =
524             new org.opendaylight.yang.gen.v1.http.org.openroadm.service
525             .rev190531.service.create.input.ServiceZEndBuilder()
526                 .setClli("clli")
527                 .setServiceRate((long)0)
528                 .setNodeId(new NodeIdType("XPONDER-3-2"))
529                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
530                     .rev190531.service.endpoint.TxDirectionBuilder()
531                     .setPort(new PortBuilder().build())
532                     .build())
533                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
534                     .rev190531.service.endpoint.RxDirectionBuilder()
535                     .setPort(new PortBuilder().build())
536                     .build())
537                 .build();
538
539         ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
540             .setCommonId("commonId")
541             .setConnectionType(ConnectionType.Service)
542             .setCustomer("Customer")
543             .setServiceName("service 1")
544             .setServiceAEnd(serviceAEnd)
545             .setServiceZEnd(serviceZEnd)
546             .setSdncRequestHeader(new SdncRequestHeaderBuilder()
547                 .setRequestId("request 1")
548                 .build());
549
550         return builtInput.build();
551     }
552 }