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.rev200128.PathComputationRequestInput;
23 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.ServicePathRpcResult;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.ServicePathRpcResultBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.service.path.rpc.result.PathDescription;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.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.rev171017.ServiceRpcResultSh;
31 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev171017.ServiceRpcResultShBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.RpcActions;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ServiceNotificationTypes;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeader;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.RxDirection;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.TxDirection;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.lgx.LgxBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.HardConstraintsBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.SoftConstraintsBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
45 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
46 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
47 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInput;
48 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInputBuilder;
49 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInput;
50 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInputBuilder;
51 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInput;
52 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInputBuilder;
53 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInput;
54 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInputBuilder;
55 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInput;
56 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInput.Option;
57 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInputBuilder;
58 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInput;
59 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInputBuilder;
60 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInput;
61 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInputBuilder;
62 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.delete.input.ServiceDeleteReqInfo;
63 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.delete.input.ServiceDeleteReqInfoBuilder;
64 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceAEnd;
65 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceAEndBuilder;
66 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceZEnd;
67 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceZEndBuilder;
68 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
69 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
70 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
71 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
72 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
73 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.RpcStatusEx;
74 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.ServicePathNotificationTypes;
75 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
76 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
78 public final class ServiceDataUtils {
80 public static ServiceCreateInput buildServiceCreateInput() {
82 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
83 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
85 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
86 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
87 .create.input.ServiceZEndBuilder()
88 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
89 .setNodeId(new NodeIdType("XPONDER-3-2"))
90 .setTxDirection(getTxDirection())
91 .setRxDirection(getRxDirection())
94 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
95 .setCommonId("commonId")
96 .setConnectionType(ConnectionType.Service)
97 .setCustomer("Customer")
98 .setServiceName("service 1")
99 .setServiceAEnd(serviceAEnd)
100 .setServiceZEnd(serviceZEnd)
101 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
102 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build());
104 return builtInput.build();
107 public static ServiceCreateInput buildServiceCreateInputWithHardConstraints() {
109 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
110 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
112 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
113 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
114 .create.input.ServiceZEndBuilder()
115 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
116 .setNodeId(new NodeIdType("XPONDER-3-2"))
117 .setTxDirection(getTxDirection())
118 .setRxDirection(getRxDirection())
121 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
122 .setCommonId("commonId")
123 .setConnectionType(ConnectionType.Service)
124 .setCustomer("Customer")
125 .setServiceName("service 1")
126 .setServiceAEnd(serviceAEnd)
127 .setServiceZEnd(serviceZEnd)
128 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
129 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build())
130 .setHardConstraints(new HardConstraintsBuilder().build());
132 return builtInput.build();
135 public static ServiceCreateInput buildServiceCreateInputWithSoftConstraints() {
137 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
138 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
140 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
141 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
142 .create.input.ServiceZEndBuilder()
143 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
144 .setNodeId(new NodeIdType("XPONDER-3-2"))
145 .setTxDirection(getTxDirection())
146 .setRxDirection(getRxDirection())
149 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
150 .setCommonId("commonId")
151 .setConnectionType(ConnectionType.Service)
152 .setCustomer("Customer")
153 .setServiceName("service 1")
154 .setServiceAEnd(serviceAEnd)
155 .setServiceZEnd(serviceZEnd)
156 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
157 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build())
158 .setSoftConstraints(new SoftConstraintsBuilder().build());
160 return builtInput.build();
163 public static PathComputationRequestInput createPceRequestInput(ServiceCreateInput input) {
164 MappingConstraints mappingConstraints =
165 new MappingConstraints(input.getHardConstraints(), input.getSoftConstraints());
166 mappingConstraints.serviceToServicePathConstarints();
167 ServiceHandlerHeaderBuilder serviceHandlerHeader = new ServiceHandlerHeaderBuilder();
168 SdncRequestHeader serviceHandler = input.getSdncRequestHeader();
169 if (serviceHandler != null) {
170 serviceHandlerHeader.setRequestId(serviceHandler.getRequestId());
172 return new PathComputationRequestInputBuilder()
173 .setServiceName(input.getServiceName())
174 .setResourceReserve(true)
175 .setServiceHandlerHeader(serviceHandlerHeader.build())
176 .setHardConstraints(mappingConstraints.getServicePathHardConstraints())
177 .setSoftConstraints(mappingConstraints.getServicePathSoftConstraints())
178 .setPceMetric(PceMetric.TEMetric)
179 .setServiceAEnd(ModelMappingUtils.createServiceAEnd(input.getServiceAEnd()))
180 .setServiceZEnd(ModelMappingUtils.createServiceZEnd(input.getServiceZEnd()))
184 public static TempServiceCreateInput buildTempServiceCreateInput() {
186 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.temp.service.create.input
187 .ServiceAEnd serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
188 .temp.service.create.input.ServiceAEndBuilder()
189 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
190 .setNodeId(new NodeIdType("XPONDER-1-2"))
191 .setTxDirection(getTxDirection())
192 .setRxDirection(getRxDirection())
194 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.temp.service.create.input
195 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.temp
196 .service.create.input.ServiceZEndBuilder()
197 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
198 .setNodeId(new NodeIdType("XPONDER-3-2"))
199 .setTxDirection(getTxDirection())
200 .setRxDirection(getRxDirection())
203 TempServiceCreateInputBuilder builtInput = new TempServiceCreateInputBuilder()
204 .setCommonId("commonId")
205 .setConnectionType(ConnectionType.Service)
206 .setCustomer("Customer")
207 .setServiceAEnd(serviceAEnd)
208 .setServiceZEnd(serviceZEnd)
209 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
210 .setRpcAction(RpcActions.TempServiceCreate).setNotificationUrl("notification url").build());
212 return builtInput.build();
215 public static ServiceFeasibilityCheckInput buildServiceFeasibilityCheckInput() {
217 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
218 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
219 .setNodeId(new NodeIdType("XPONDER-1-2"))
220 .setTxDirection(getTxDirection()).setRxDirection(getRxDirection()).build();
221 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
222 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
223 .setNodeId(new NodeIdType("XPONDER-3-2"))
224 .setTxDirection(getTxDirection()).setRxDirection(getRxDirection()).build();
225 ServiceAEnd serviceAEndvalue = new ServiceAEndBuilder().build();
227 ServiceFeasibilityCheckInputBuilder builtInput = new ServiceFeasibilityCheckInputBuilder()
228 .setCommonId("commonId")
229 .setConnectionType(ConnectionType.Service)
230 .setCustomer("Customer")
231 .setServiceAEnd(serviceAEnd)
232 .setServiceZEnd(serviceZEnd)
233 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
234 .setRpcAction(RpcActions.ServiceFeasibilityCheck).setNotificationUrl("notification url").build());
235 return builtInput.build();
238 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
239 .ServiceAEndBuilder getServiceAEndBuild() {
240 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
241 .ServiceAEndBuilder()
242 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
243 .setNodeId(new NodeIdType("XPONDER-1-2"))
244 .setTxDirection(getTxDirection())
245 .setRxDirection(getRxDirection());
248 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
249 .ServiceZEndBuilder getServiceZEndBuild() {
250 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
251 .ServiceZEndBuilder()
252 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
253 .setNodeId(new NodeIdType("XPONDER-1-2"))
254 .setTxDirection(getTxDirection())
255 .setRxDirection(getRxDirection());
258 private static TxDirection getTxDirection() {
259 return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service
260 .endpoint.TxDirectionBuilder().setPort(new PortBuilder().setPortDeviceName("device name")
261 .setPortName("port name").setPortRack("port rack").setPortShelf("port shelf")
262 .setPortSlot("port slot").setPortSubSlot("port subslot").setPortType("port type").build())
263 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name").setLgxPortName("lgx port name")
264 .setLgxPortRack("lgx port rack").setLgxPortShelf("lgx port shelf").build())
268 private static RxDirection getRxDirection() {
269 return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service
270 .endpoint.RxDirectionBuilder()
271 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
272 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
273 .setPortSubSlot("port subslot").setPortType("port type").build())
274 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
275 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
276 .setLgxPortShelf("lgx port shelf").build())
280 public static ServiceDeleteInput buildServiceDeleteInput() {
282 ServiceDeleteInputBuilder deleteInputBldr = new ServiceDeleteInputBuilder();
283 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
284 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
285 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
286 deleteInputBldr.setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder().setServiceName("service 1")
287 .setDueDate(datetime).setTailRetention(ServiceDeleteReqInfo.TailRetention.No).build());
288 SdncRequestHeaderBuilder sdncBuilder = new SdncRequestHeaderBuilder()
289 .setNotificationUrl("notification url")
290 .setRequestId("request 1")
291 .setRequestSystemId("request system 1")
292 .setRpcAction(RpcActions.ServiceDelete);
293 deleteInputBldr.setSdncRequestHeader(sdncBuilder.build());
294 return deleteInputBldr.build();
297 public static TempServiceDeleteInput buildTempServiceDeleteInput() {
298 TempServiceDeleteInputBuilder deleteInputBldr = new TempServiceDeleteInputBuilder()
299 .setCommonId("service 1");
300 return deleteInputBldr.build();
303 public static TempServiceDeleteInput buildTempServiceDeleteInput(String commonId) {
304 TempServiceDeleteInputBuilder deleteInputBldr = new TempServiceDeleteInputBuilder()
305 .setCommonId(commonId);
306 return deleteInputBldr.build();
309 public static ServiceRerouteInput buildServiceRerouteInput() {
310 ServiceRerouteInputBuilder builder = new ServiceRerouteInputBuilder()
311 .setServiceName("service 1");
312 return builder.build();
315 public static ServiceRestorationInput buildServiceRestorationInput() {
316 ServiceRestorationInputBuilder builder = new ServiceRestorationInputBuilder()
317 .setServiceName("service 1")
318 .setOption(Option.Permanent);
319 return builder.build();
322 public static ServiceReconfigureInput buildServiceReconfigureInput() {
324 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
325 .ServiceAEnd serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
326 .reconfigure.input.ServiceAEndBuilder()
327 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
328 .setNodeId(new NodeIdType("XPONDER-1-2")).setTxDirection(getTxDirection())
329 .setRxDirection(getRxDirection())
331 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
332 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
333 .reconfigure.input.ServiceZEndBuilder()
334 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
335 .setNodeId(new NodeIdType("XPONDER-3-2")).setTxDirection(getTxDirection())
336 .setRxDirection(getRxDirection())
339 ServiceReconfigureInputBuilder builtInput = new ServiceReconfigureInputBuilder()
340 .setCommonId("commonId")
341 .setConnectionType(ConnectionType.Service)
342 .setCustomer("Customer")
343 .setServiceName("service 1")
344 .setServiceAEnd(serviceAEnd)
345 .setServiceZEnd(serviceZEnd);
346 return builtInput.build();
349 public static ServicePathRpcResult buildServicePathRpcResult() {
350 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
351 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
352 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
353 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
354 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
355 .setPathDescription(createPathDescription(0,1, 0, 1))
356 .setServiceName("service 1")
357 .setStatus(RpcStatusEx.Successful).setStatusMessage("success");
358 return builder.build();
361 public static ServicePathRpcResult buildServicePathRpcResult(
362 ServicePathNotificationTypes servicePathNotificationTypes, String serviceName, RpcStatusEx rpcStatusEx,
363 String message, Boolean pathDescription) {
364 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
365 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
366 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
367 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
368 builder.setNotificationType(servicePathNotificationTypes)
369 .setServiceName(serviceName)
370 .setStatus(rpcStatusEx).setStatusMessage(message);
371 if (pathDescription) {
372 builder.setPathDescription(createPathDescription(0L, 5L, 0L, 5L));
374 return builder.build();
377 public static ServicePathRpcResult buildFailedPceServicePathRpcResult() {
378 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
379 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
380 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
381 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
382 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
383 .setPathDescription(createPathDescription(0, 1, 0, 1)).setServiceName("service 1")
384 .setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
385 return builder.build();
388 public static ServicePathRpcResult buildFailedServicePathRpcResult() {
389 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
390 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
391 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
392 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
393 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
394 .setPathDescription(createPathDescription(0,1, 0, 1))
395 .setServiceName("service 1")
396 .setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
397 return builder.build();
400 public static ServiceRpcResultSp buildServiceRpcResultSp() {
401 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
402 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
403 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
404 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
405 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
406 .setServiceName("service 1").setStatus(RpcStatusEx.Successful).setStatusMessage("success");
407 return builder.build();
410 public static ServiceRpcResultSp buildServiceRpcResultSp(ServicePathNotificationTypes servicePathNotificationTypes,
411 String serviceName, RpcStatusEx rpcStatusEx, String message) {
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.setNotificationType(servicePathNotificationTypes).setServiceName(serviceName)
417 .setStatus(rpcStatusEx).setStatusMessage(message);
418 return builder.build();
421 public static ServiceRpcResultSh buildServiceRpcResultSh(
422 ServiceNotificationTypes serviceNotificationTypes,
424 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.RpcStatusEx
427 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
428 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
429 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
430 ServiceRpcResultShBuilder builder = new ServiceRpcResultShBuilder();
431 builder.setNotificationType(serviceNotificationTypes).setServiceName(serviceName)
432 .setStatus(rpcStatusEx).setStatusMessage(message);
433 return builder.build();
436 public static ServiceRpcResultSp buildFailedServiceRpcResultSp() {
437 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
438 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
439 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
440 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
441 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
442 .setServiceName("service 1").setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
443 return builder.build();
446 public static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
448 AToZDirection atozDirection = new AToZDirectionBuilder()
450 .setAToZWavelengthNumber(azWaveLength)
453 ZToADirection ztoaDirection = new ZToADirectionBuilder()
455 .setZToAWavelengthNumber(zaWaveLength)
458 PathDescription pathDescription = new PathDescriptionBuilder()
459 .setAToZDirection(atozDirection)
460 .setZToADirection(ztoaDirection)
462 return pathDescription;
465 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
466 .ServiceAEndBuilder getServiceAEndBuildReconfigure() {
467 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
468 .ServiceAEndBuilder()
469 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
470 .setNodeId(new NodeIdType("XPONDER-1-2"))
471 .setTxDirection(getTxDirection())
472 .setRxDirection(getRxDirection());
475 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
476 .ServiceZEndBuilder getServiceZEndBuildReconfigure() {
477 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
478 .ServiceZEndBuilder()
479 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
480 .setNodeId(new NodeIdType("XPONDER-1-2"))
481 .setTxDirection(getTxDirection())
482 .setRxDirection(getRxDirection());
485 public static <T> ListenableFuture<T> returnFuture(T output) {
486 final ListeningExecutorService executor =
487 MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(1));
488 return executor.submit(new Callable<T>() {
490 public T call() throws Exception {
496 private ServiceDataUtils() {