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