2 * Copyright © 2018 Orange, Inc. and others. All rights reserved.
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
8 package org.opendaylight.transportpce.servicehandler.utils;
10 import com.google.common.util.concurrent.ListenableFuture;
11 import com.google.common.util.concurrent.ListeningExecutorService;
12 import com.google.common.util.concurrent.MoreExecutors;
14 import java.time.OffsetDateTime;
15 import java.time.ZoneOffset;
16 import java.time.format.DateTimeFormatter;
17 import java.util.concurrent.Callable;
18 import java.util.concurrent.Executors;
20 import org.opendaylight.transportpce.servicehandler.MappingConstraints;
21 import org.opendaylight.transportpce.servicehandler.ModelMappingUtils;
22 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.PathComputationRequestInput;
23 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.PathComputationRequestInputBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.ServicePathRpcResult;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.ServicePathRpcResultBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.service.path.rpc.result.PathDescription;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev190624.service.path.rpc.result.PathDescriptionBuilder;
28 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceRpcResultSp;
29 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceRpcResultSpBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev170930.ServiceRpcResultSh;
31 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev170930.ServiceRpcResultShBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ConnectionType;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.RpcActions;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceFormat;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceNotificationTypes;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeader;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeaderBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.endpoint.RxDirection;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.endpoint.TxDirection;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.lgx.LgxBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.routing.constraints.HardConstraintsBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev161014.routing.constraints.SoftConstraintsBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInput;
45 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInputBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceDeleteInput;
47 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceDeleteInputBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceFeasibilityCheckInput;
49 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceFeasibilityCheckInputBuilder;
50 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceReconfigureInput;
51 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceReconfigureInputBuilder;
52 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRerouteInput;
53 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRerouteInputBuilder;
54 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRestorationInput;
55 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRestorationInput.Option;
56 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRestorationInputBuilder;
57 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempServiceCreateInput;
58 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempServiceCreateInputBuilder;
59 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempServiceDeleteInput;
60 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempServiceDeleteInputBuilder;
61 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.delete.input.ServiceDeleteReqInfo;
62 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.delete.input.ServiceDeleteReqInfoBuilder;
63 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
64 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
65 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
66 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
67 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
68 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
69 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
70 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
71 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
73 public final class ServiceDataUtils {
75 public static ServiceCreateInput buildServiceCreateInput() {
77 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder();
78 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
79 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
81 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
82 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
83 .create.input.ServiceZEndBuilder()
84 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-3-2")
85 .setTxDirection(getTxDirection())
86 .setRxDirection(getRxDirection())
89 builtInput.setCommonId("commonId");
90 builtInput.setConnectionType(ConnectionType.Service);
91 builtInput.setCustomer("Customer");
92 builtInput.setServiceName("service 1");
93 builtInput.setServiceAEnd(serviceAEnd);
94 builtInput.setServiceZEnd(serviceZEnd);
95 builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
96 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build());
98 return builtInput.build();
101 public static ServiceCreateInput buildServiceCreateInputWithHardConstraints() {
103 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder();
104 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
105 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
107 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
108 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
109 .create.input.ServiceZEndBuilder()
110 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-3-2")
111 .setTxDirection(getTxDirection())
112 .setRxDirection(getRxDirection())
115 builtInput.setCommonId("commonId");
116 builtInput.setConnectionType(ConnectionType.Service);
117 builtInput.setCustomer("Customer");
118 builtInput.setServiceName("service 1");
119 builtInput.setServiceAEnd(serviceAEnd);
120 builtInput.setServiceZEnd(serviceZEnd);
121 builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
122 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build());
123 builtInput.setHardConstraints(new HardConstraintsBuilder().build());
125 return builtInput.build();
128 public static ServiceCreateInput buildServiceCreateInputWithSoftConstraints() {
130 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder();
131 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
132 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
134 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
135 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
136 .create.input.ServiceZEndBuilder()
137 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-3-2")
138 .setTxDirection(getTxDirection())
139 .setRxDirection(getRxDirection())
142 builtInput.setCommonId("commonId");
143 builtInput.setConnectionType(ConnectionType.Service);
144 builtInput.setCustomer("Customer");
145 builtInput.setServiceName("service 1");
146 builtInput.setServiceAEnd(serviceAEnd);
147 builtInput.setServiceZEnd(serviceZEnd);
148 builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
149 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build());
150 builtInput.setSoftConstraints(new SoftConstraintsBuilder().build());
152 return builtInput.build();
155 public static PathComputationRequestInput createPceRequestInput(ServiceCreateInput input) {
156 MappingConstraints mappingConstraints =
157 new MappingConstraints(input.getHardConstraints(), input.getSoftConstraints());
158 mappingConstraints.serviceToServicePathConstarints();
159 ServiceHandlerHeaderBuilder serviceHandlerHeader = new ServiceHandlerHeaderBuilder();
160 SdncRequestHeader serviceHandler = input.getSdncRequestHeader();
161 if (serviceHandler != null) {
162 serviceHandlerHeader.setRequestId(serviceHandler.getRequestId());
164 return new PathComputationRequestInputBuilder()
165 .setServiceName(input.getServiceName())
166 .setResourceReserve(true)
167 .setServiceHandlerHeader(serviceHandlerHeader.build())
168 .setHardConstraints(mappingConstraints.getServicePathHardConstraints())
169 .setSoftConstraints(mappingConstraints.getServicePathSoftConstraints())
170 .setPceMetric(PceMetric.TEMetric)
171 .setServiceAEnd(ModelMappingUtils.createServiceAEnd(input.getServiceAEnd()))
172 .setServiceZEnd(ModelMappingUtils.createServiceZEnd(input.getServiceZEnd()))
176 public static TempServiceCreateInput buildTempServiceCreateInput() {
178 TempServiceCreateInputBuilder builtInput = new TempServiceCreateInputBuilder();
179 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.temp.service.create.input
180 .ServiceAEnd serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014
181 .temp.service.create.input.ServiceAEndBuilder()
182 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
183 .setTxDirection(getTxDirection())
184 .setRxDirection(getRxDirection())
186 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.temp.service.create.input
187 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.temp
188 .service.create.input.ServiceZEndBuilder()
189 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-3-2")
190 .setTxDirection(getTxDirection())
191 .setRxDirection(getRxDirection())
194 builtInput.setCommonId("commonId");
195 builtInput.setConnectionType(ConnectionType.Service);
196 builtInput.setCustomer("Customer");
197 builtInput.setServiceAEnd(serviceAEnd);
198 builtInput.setServiceZEnd(serviceZEnd);
199 builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
200 .setRpcAction(RpcActions.TempServiceCreate).setNotificationUrl("notification url").build());
202 return builtInput.build();
205 public static ServiceFeasibilityCheckInput buildServiceFeasibilityCheckInput() {
206 ServiceFeasibilityCheckInputBuilder builtInput = new ServiceFeasibilityCheckInputBuilder();
207 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.feasibility.check.input
208 .ServiceAEnd serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
209 .feasibility.check.input.ServiceAEndBuilder()
210 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
211 .setNodeId("XPONDER-1-2").setTxDirection(getTxDirection()).setRxDirection(getRxDirection())
213 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.feasibility.check.input
214 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
215 .feasibility.check.input.ServiceZEndBuilder()
216 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
217 .setNodeId("XPONDER-3-2").setTxDirection(getTxDirection()).setRxDirection(getRxDirection())
219 builtInput.setCommonId("commonId");
220 builtInput.setConnectionType(ConnectionType.Service);
221 builtInput.setCustomer("Customer");
222 builtInput.setServiceAEnd(serviceAEnd);
223 builtInput.setServiceZEnd(serviceZEnd);
224 builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
225 .setRpcAction(RpcActions.ServiceFeasibilityCheck).setNotificationUrl("notification url").build());
226 return builtInput.build();
229 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
230 .ServiceAEndBuilder getServiceAEndBuild() {
231 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
232 .ServiceAEndBuilder()
233 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
234 .setTxDirection(getTxDirection())
235 .setRxDirection(getRxDirection());
238 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
239 .ServiceZEndBuilder getServiceZEndBuild() {
240 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
241 .ServiceZEndBuilder()
242 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
243 .setTxDirection(getTxDirection())
244 .setRxDirection(getRxDirection());
247 private static TxDirection getTxDirection() {
248 return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
249 .endpoint.TxDirectionBuilder().setPort(new PortBuilder().setPortDeviceName("device name")
250 .setPortName("port name").setPortRack("port rack").setPortShelf("port shelf")
251 .setPortSlot("port slot").setPortSubSlot("port subslot").setPortType("port type").build())
252 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name").setLgxPortName("lgx port name")
253 .setLgxPortRack("lgx port rack").setLgxPortShelf("lgx port shelf").build())
257 private static RxDirection getRxDirection() {
258 return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
259 .endpoint.RxDirectionBuilder()
260 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
261 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
262 .setPortSubSlot("port subslot").setPortType("port type").build())
263 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
264 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
265 .setLgxPortShelf("lgx port shelf").build())
269 public static ServiceDeleteInput buildServiceDeleteInput() {
270 ServiceDeleteInputBuilder deleteInputBldr = new ServiceDeleteInputBuilder();
271 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
272 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
273 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
274 deleteInputBldr.setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder().setServiceName("service 1")
275 .setDueDate(datetime).setTailRetention(ServiceDeleteReqInfo.TailRetention.No).build());
276 SdncRequestHeaderBuilder sdncBuilder = new SdncRequestHeaderBuilder();
277 sdncBuilder.setNotificationUrl("notification url");
278 sdncBuilder.setRequestId("request 1");
279 sdncBuilder.setRequestSystemId("request system 1");
280 sdncBuilder.setRpcAction(RpcActions.ServiceDelete);
281 deleteInputBldr.setSdncRequestHeader(sdncBuilder.build());
282 return deleteInputBldr.build();
285 public static TempServiceDeleteInput buildTempServiceDeleteInput() {
286 TempServiceDeleteInputBuilder deleteInputBldr = new TempServiceDeleteInputBuilder();
287 deleteInputBldr.setCommonId("service 1");
288 return deleteInputBldr.build();
291 public static ServiceRerouteInput buildServiceRerouteInput() {
292 ServiceRerouteInputBuilder builder = new ServiceRerouteInputBuilder();
293 builder.setServiceName("service 1");
294 return builder.build();
297 public static ServiceRestorationInput buildServiceRestorationInput() {
298 ServiceRestorationInputBuilder builder = new ServiceRestorationInputBuilder();
299 builder.setServiceName("service 1");
300 builder.setOption(Option.Permanent);
301 return builder.build();
304 public static ServiceReconfigureInput buildServiceReconfigureInput() {
305 ServiceReconfigureInputBuilder builtInput = new ServiceReconfigureInputBuilder();
306 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
307 .ServiceAEnd serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
308 .reconfigure.input.ServiceAEndBuilder()
309 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
310 .setNodeId("XPONDER-1-2").setTxDirection(getTxDirection()).setRxDirection(getRxDirection())
312 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
313 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
314 .reconfigure.input.ServiceZEndBuilder()
315 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
316 .setNodeId("XPONDER-3-2").setTxDirection(getTxDirection()).setRxDirection(getRxDirection())
318 builtInput.setCommonId("commonId");
319 builtInput.setConnectionType(ConnectionType.Service);
320 builtInput.setCustomer("Customer");
321 builtInput.setServiceName("service 1");
322 builtInput.setServiceAEnd(serviceAEnd);
323 builtInput.setServiceZEnd(serviceZEnd);
324 return builtInput.build();
327 public static ServicePathRpcResult buildServicePathRpcResult() {
328 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
329 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
330 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
331 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
332 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
333 .setPathDescription(createPathDescription(0,1, 0, 1))
334 .setServiceName("service 1")
335 .setStatus(RpcStatusEx.Successful).setStatusMessage("success");
336 return builder.build();
339 public static ServicePathRpcResult buildServicePathRpcResult(
340 ServicePathNotificationTypes servicePathNotificationTypes, String serviceName, RpcStatusEx rpcStatusEx,
341 String message, Boolean pathDescription) {
342 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
343 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
344 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
345 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
346 builder.setNotificationType(servicePathNotificationTypes)
347 .setServiceName(serviceName)
348 .setStatus(rpcStatusEx).setStatusMessage(message);
349 if (pathDescription) {
350 builder.setPathDescription(createPathDescription(0L, 5L, 0L, 5L));
352 return builder.build();
355 public static ServicePathRpcResult buildFailedPceServicePathRpcResult() {
356 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
357 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
358 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
359 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
360 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
361 .setPathDescription(createPathDescription(0, 1, 0, 1)).setServiceName("service 1")
362 .setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
363 return builder.build();
366 public static ServicePathRpcResult buildFailedServicePathRpcResult() {
367 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
368 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
369 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
370 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
371 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
372 .setPathDescription(createPathDescription(0,1, 0, 1))
373 .setServiceName("service 1")
374 .setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
375 return builder.build();
378 public static ServiceRpcResultSp buildServiceRpcResultSp() {
379 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
380 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
381 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
382 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
383 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
384 .setServiceName("service 1").setStatus(RpcStatusEx.Successful).setStatusMessage("success");
385 return builder.build();
388 public static ServiceRpcResultSp buildServiceRpcResultSp(ServicePathNotificationTypes servicePathNotificationTypes,
389 String serviceName, RpcStatusEx rpcStatusEx, String message) {
390 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
391 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
392 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
393 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
394 builder.setNotificationType(servicePathNotificationTypes).setServiceName(serviceName)
395 .setStatus(rpcStatusEx).setStatusMessage(message);
396 return builder.build();
399 public static ServiceRpcResultSh buildServiceRpcResultSh(ServiceNotificationTypes serviceNotificationTypes,
400 String serviceName, org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types
401 .rev170426.RpcStatusEx rpcStatusEx, String message) {
402 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
403 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
404 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
405 ServiceRpcResultShBuilder builder = new ServiceRpcResultShBuilder();
406 builder.setNotificationType(serviceNotificationTypes).setServiceName(serviceName)
407 .setStatus(rpcStatusEx).setStatusMessage(message);
408 return builder.build();
411 public static ServiceRpcResultSp buildFailedServiceRpcResultSp() {
412 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
413 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
414 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
415 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
416 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
417 .setServiceName("service 1").setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
418 return builder.build();
421 public static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
423 AToZDirection atozDirection = new AToZDirectionBuilder()
425 .setAToZWavelengthNumber(azWaveLength)
428 ZToADirection ztoaDirection = new ZToADirectionBuilder()
430 .setZToAWavelengthNumber(zaWaveLength)
433 PathDescription pathDescription = new PathDescriptionBuilder()
434 .setAToZDirection(atozDirection)
435 .setZToADirection(ztoaDirection)
437 return pathDescription;
440 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
441 .ServiceAEndBuilder getServiceAEndBuildReconfigure() {
442 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
443 .ServiceAEndBuilder()
444 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
445 .setTxDirection(getTxDirection())
446 .setRxDirection(getRxDirection());
449 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
450 .ServiceZEndBuilder getServiceZEndBuildReconfigure() {
451 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
452 .ServiceZEndBuilder()
453 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
454 .setTxDirection(getTxDirection())
455 .setRxDirection(getRxDirection());
458 public static <T> ListenableFuture<T> returnFuture(T output) {
459 final ListeningExecutorService executor =
460 MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(1));
461 return executor.submit(new Callable<T>() {
463 public T call() throws Exception {
469 private ServiceDataUtils() {