PCE module init
[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
12 import org.opendaylight.transportpce.common.ResponseCodes;
13 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestInput;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestInputBuilder;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestOutput;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestOutputBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.path.computation.request.input.ServiceAEnd;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.path.computation.request.input.ServiceAEndBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.path.computation.request.input.ServiceZEnd;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.path.computation.request.input.ServiceZEndBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ConnectionType;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceFormat;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommon;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeaderBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInput;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInputBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirection;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirectionBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirection;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirectionBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.RoutingConstraintsSp;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.CoRoutingBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.GeneralBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.general.DiversityBuilder;
37 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.constraints.sp.co.routing.or.general.general.ExcludeBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
39 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.HardConstraintsBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.SoftConstraintsBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.response.parameters.sp.ResponseParameters;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.response.parameters.sp.ResponseParametersBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.response.parameters.sp.response.parameters.PathDescription;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.response.parameters.sp.response.parameters.PathDescriptionBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.RxDirectionBuilder;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.TxDirectionBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.handler.header.ServiceHandlerHeader;
49 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.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(RoutingConstraintsSp.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                  .rev170426.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                 .rev170426.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(RoutingConstraintsSp.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      * @return output PathComputationRequestOutput data
227      */
228     public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
229         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
230         ResponseParameters responseParameters = new ResponseParametersBuilder()
231                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
232                 .build();
233         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
234                 .setResponseParameters(responseParameters);
235         return outputBuilder.build();
236     }
237
238     /**
239      * Generate Data for Test 2 request 5-4.
240      *<code>{
241        "pce:input": {
242          "pce:service-name": "service 1",
243          "pce:resource-reserve": "true",
244          "pce:service-handler-header": {
245            "pce:request-id": "request 1"
246          },
247          "pce:service-a-end": {
248            "pce:service-rate": "0",
249            "pce:node-id": "XPONDER-1-2"
250          },
251          "pce:service-z-end": {
252            "pce:service-rate": "0",
253            "pce:node-id": "XPONDER-3-2"
254          },
255          "pce:hard-constraints": {
256            "pce:exclude_": {
257              "node-id": [ "OpenROADM-2-2" ]
258            }
259          },
260          "pce:pce-metric": "hop-count"
261        }
262      }</code>
263      * @return input PathComputationRequestInput data
264      */
265     public static PathComputationRequestInput getPCE_test2_request_54() {
266         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
267                 .setRequestId("request 1")
268                 .build();
269         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
270                 .setServiceRate(0L)
271                 .setNodeId("XPONDER-1-2")
272                 .build();
273         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
274                 .setServiceRate(0L)
275                 .setNodeId("XPONDER-3-2")
276                 .build();
277         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
278                 .setServiceHandlerHeader(serviceHandlerHeader)
279                 .setServiceName("service 1")
280                 .setResourceReserve(true)
281                 .setPceMetric(RoutingConstraintsSp.PceMetric.HopCount)
282                 .setServiceAEnd(serviceAEnd)
283                 .setServiceZEnd(serviceZEnd)
284                 .setHardConstraints(new HardConstraintsBuilder()
285                         .setCoRoutingOrGeneral(new GeneralBuilder()
286                                 .setExclude(new ExcludeBuilder()
287                                         .setNodeId(Arrays.asList("OpenROADM-2-2"))
288                                         .build())
289                                 .build())
290                         .build())
291                 .build();
292         return input;
293     }
294
295     /**
296      * Generate Data for Test 2 result 5-4.
297      * @return output PathComputationRequestOutput data
298      */
299     public static PathComputationRequestOutput getPCE_test2_result_54() {
300         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
301         ResponseParameters responseParameters = new ResponseParametersBuilder()
302                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
303                 .build();
304         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
305                 .setResponseParameters(responseParameters);
306         return outputBuilder.build();
307     }
308
309     /**
310      * Generate Data for Test 2 request 5-4.
311      *<code>{
312        "pce:input": {
313          "pce:service-name": "service 1",
314          "pce:resource-reserve": "true",
315          "pce:service-handler-header": {
316            "pce:request-id": "request 1"
317          },
318          "pce:service-a-end": {
319            "pce:service-rate": "0",
320            "pce:node-id": "XPONDER-1-2"
321          },
322          "pce:service-z-end": {
323            "pce:service-rate": "0",
324            "pce:node-id": "XPONDER-3-2"
325          },
326          "pce:hard-constraints": {
327            "pce:exclude_": {
328              "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
329            }
330          },
331          "pce:pce-metric": "hop-count"
332        }
333      }</code>
334      * @return input PathComputationRequestInput data
335      */
336     public static PathComputationRequestInput getPCE_test3_request_54() {
337         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
338                 .setRequestId("request 1")
339                 .build();
340         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
341                 .setServiceRate(0L)
342                 .setNodeId("XPONDER-1-2")
343                 .build();
344         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
345                 .setServiceRate(0L)
346                 .setNodeId("XPONDER-3-2")
347                 .build();
348         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
349                 .setServiceHandlerHeader(serviceHandlerHeader)
350                 .setServiceName("service 1")
351                 .setResourceReserve(true)
352                 .setPceMetric(RoutingConstraintsSp.PceMetric.HopCount)
353                 .setServiceAEnd(serviceAEnd)
354                 .setServiceZEnd(serviceZEnd)
355                 .setHardConstraints(new HardConstraintsBuilder()
356                         .setCoRoutingOrGeneral(new GeneralBuilder()
357                                 .setExclude(new ExcludeBuilder()
358                                         .setNodeId(Arrays.asList("OpenROADM-2-1", "OpenROADM-2-2"))
359                                         .build())
360                                 .build())
361                         .build())
362                 .build();
363         return input;
364     }
365
366     /**
367      * Generate Data for Test 3 result 5-4.
368      * @return output PathComputationRequestOutput data
369      */
370     public static PathComputationRequestOutput getPCE_test3_result_54() {
371         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
372         ResponseParameters responseParameters = new ResponseParametersBuilder()
373                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
374                 .build();
375         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
376                 .setResponseParameters(responseParameters);
377         return outputBuilder.build();
378     }
379
380     public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
381         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
382                 .setRequestId("request 1")
383                 .build();
384         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
385                 .setServiceRate(0L)
386                 .setNodeId("XPONDER-1-2")
387                 .build();
388         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
389                 .setServiceRate(0L)
390                 .setNodeId("XPONDER-3-2")
391                 .build();
392         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
393                 .setServiceHandlerHeader(serviceHandlerHeader)
394                 .setServiceName("service 1")
395                 .setResourceReserve(true)
396                 .setPceMetric(RoutingConstraintsSp.PceMetric.HopCount)
397                 .setServiceAEnd(serviceAEnd)
398                 .setServiceZEnd(serviceZEnd)
399                 .build();
400         return input;
401     }
402
403     public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
404         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
405         ResponseParameters responseParameters = new ResponseParametersBuilder()
406                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
407                 .build();
408         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
409                 .setResponseParameters(responseParameters);
410         return outputBuilder.build();
411     }
412
413     private static ConfigurationResponseCommon createCommonSuccessResponse() {
414         ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
415                 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
416                 .setRequestId("request 1")
417                 .setResponseCode(ResponseCodes.RESPONSE_OK)
418                 .setResponseMessage("Path is calculated");
419         return configurationResponseCommon.build();
420     }
421
422     private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
423         long zaWaveLength) {
424         AToZDirection atozDirection = new AToZDirectionBuilder()
425                 .setRate(azRate)
426                 .setAToZWavelengthNumber(azWaveLength)
427                 .setAToZ(null)
428                 .build();
429         ZToADirection ztoaDirection = new ZToADirectionBuilder()
430                 .setRate(zaRate)
431                 .setZToAWavelengthNumber(zaWaveLength)
432                 .setZToA(null)
433                 .build();
434         PathDescription pathDescription = new PathDescriptionBuilder()
435                 .setAToZDirection(atozDirection)
436                 .setZToADirection(ztoaDirection)
437                 .build();
438         return pathDescription;
439     }
440
441     /**
442      * Generate Data for Test Diversity test 1 request 5-4.
443      *<code>{
444        "pce:input": {
445          "pce:service-name": "service 1",
446          "pce:resource-reserve": "true",
447          "pce:service-handler-header": {
448            "pce:request-id": "request 1"
449          },
450          "pce:service-a-end": {
451            "pce:service-rate": "0",
452            "pce:node-id": "XPONDER-1-1"
453          },
454          "pce:service-z-end": {
455            "pce:service-rate": "0",
456            "pce:node-id": "XPONDER-3-1"
457          },
458          "pce:hard-constraints": {
459            "pce:diversity": {
460             "existing-service": ["Path test-1-54"],
461             "existing-service-applicability": {
462                 "node": "true"
463             }
464            }
465          },
466          "pce:pce-metric": "hop-count"
467        }
468      }</code>
469      * @return input PathComputationRequestInput data
470      */
471     public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
472
473         ExistingServiceApplicability nodeTrue = new ExistingServiceApplicabilityBuilder()
474                 .setNode(true).build();
475
476         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
477                 .setServiceRate(0L)
478                 .setNodeId("XPONDER-1-1")
479                 .build();
480         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
481                 .setServiceRate(0L)
482                 .setNodeId("XPONDER-3-1")
483                 .build();
484
485         PathComputationRequestInput input = new PathComputationRequestInputBuilder(base)
486                 .setServiceName("service 2")
487                 .setServiceAEnd(serviceAEnd)
488                 .setServiceZEnd(serviceZEnd)
489                 .setHardConstraints(new HardConstraintsBuilder()
490                         .setCoRoutingOrGeneral(new GeneralBuilder()
491                                 .setDiversity(new DiversityBuilder()
492                                         .setExistingService(Arrays.asList(base.getServiceName()))
493                                         .setExistingServiceApplicability(nodeTrue)
494                                         .build())
495                                 .build())
496                         .build())
497                 .build();
498         return input;
499     }
500
501     public static ServiceCreateInput buildServiceCreateInput() {
502
503         ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder();
504
505         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input.ServiceAEnd serviceAEnd =
506             new org.opendaylight.yang.gen.v1.http.org.openroadm.service
507                 .rev161014.service.create.input.ServiceAEndBuilder()
508                 .setClli("clli")
509                 .setServiceRate((long)0)
510                 .setNodeId("XPONDER-1-2")
511                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
512                     .rev161014.service.endpoint.TxDirectionBuilder()
513                     .setPort(new PortBuilder().build())
514                     .build())
515                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
516                     .rev161014.service.endpoint.RxDirectionBuilder()
517                     .setPort(new PortBuilder().build())
518                     .build())
519                 .build();
520
521
522         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input.ServiceZEnd serviceZEnd =
523             new org.opendaylight.yang.gen.v1.http.org.openroadm.service
524             .rev161014.service.create.input.ServiceZEndBuilder()
525                 .setClli("clli")
526                 .setServiceRate((long)0)
527                 .setNodeId("XPONDER-3-2")
528                 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
529                     .rev161014.service.endpoint.TxDirectionBuilder()
530                     .setPort(new PortBuilder().build())
531                     .build())
532                 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types
533                     .rev161014.service.endpoint.RxDirectionBuilder()
534                     .setPort(new PortBuilder().build())
535                     .build())
536                 .build();
537
538         builtInput.setCommonId("commonId");
539         builtInput.setConnectionType(ConnectionType.Service);
540         builtInput.setCustomer("Customer");
541         builtInput.setServiceName("service 1");
542         builtInput.setServiceAEnd(serviceAEnd);
543         builtInput.setServiceZEnd(serviceZEnd);
544         builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder()
545                 .setRequestId("request 1")
546                 .build());
547
548
549
550         return builtInput.build();
551     }
552 }