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;
13 import java.time.OffsetDateTime;
14 import java.time.ZoneOffset;
15 import java.time.format.DateTimeFormatter;
16 import java.util.concurrent.Callable;
17 import java.util.concurrent.Executors;
18 import org.opendaylight.transportpce.servicehandler.MappingConstraints;
19 import org.opendaylight.transportpce.servicehandler.ModelMappingUtils;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.ServicePathRpcResult;
23 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.ServicePathRpcResultBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.service.path.rpc.result.PathDescription;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.service.path.rpc.result.PathDescriptionBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceRpcResultSp;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceRpcResultSpBuilder;
28 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev171017.ServiceRpcResultSh;
29 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev171017.ServiceRpcResultShBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
31 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.RpcActions;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ServiceNotificationTypes;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeader;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.RxDirection;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.endpoint.TxDirection;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.lgx.LgxBuilder;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.HardConstraintsBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.SoftConstraintsBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
43 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
44 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInput;
46 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInputBuilder;
47 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInput;
48 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInputBuilder;
49 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInput;
50 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInputBuilder;
51 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInput;
52 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInputBuilder;
53 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInput;
54 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInput.Option;
55 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInputBuilder;
56 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInput;
57 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInputBuilder;
58 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInput;
59 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInputBuilder;
60 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.delete.input.ServiceDeleteReqInfo;
61 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.delete.input.ServiceDeleteReqInfoBuilder;
62 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceAEnd;
63 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceAEndBuilder;
64 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceZEnd;
65 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.feasibility.check.inputs.ServiceZEndBuilder;
66 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
67 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
68 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
69 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
70 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
71 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.RpcStatusEx;
72 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.ServicePathNotificationTypes;
73 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
74 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
76 public final class ServiceDataUtils {
78 public static ServiceCreateInput buildServiceCreateInput() {
80 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
81 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
83 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
84 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
85 .create.input.ServiceZEndBuilder()
86 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
87 .setNodeId(new NodeIdType("XPONDER-3-2"))
88 .setTxDirection(getTxDirection())
89 .setRxDirection(getRxDirection())
92 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
93 .setCommonId("commonId")
94 .setConnectionType(ConnectionType.Service)
95 .setCustomer("Customer")
96 .setServiceName("service 1")
97 .setServiceAEnd(serviceAEnd)
98 .setServiceZEnd(serviceZEnd)
99 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
100 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build());
102 return builtInput.build();
105 public static ServiceCreateInput buildServiceCreateInputWithHardConstraints() {
107 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
108 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
110 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
111 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
112 .create.input.ServiceZEndBuilder()
113 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
114 .setNodeId(new NodeIdType("XPONDER-3-2"))
115 .setTxDirection(getTxDirection())
116 .setRxDirection(getRxDirection())
119 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
120 .setCommonId("commonId")
121 .setConnectionType(ConnectionType.Service)
122 .setCustomer("Customer")
123 .setServiceName("service 1")
124 .setServiceAEnd(serviceAEnd)
125 .setServiceZEnd(serviceZEnd)
126 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
127 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build())
128 .setHardConstraints(new HardConstraintsBuilder().build());
130 return builtInput.build();
133 public static ServiceCreateInput buildServiceCreateInputWithSoftConstraints() {
135 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
136 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
138 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
139 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
140 .create.input.ServiceZEndBuilder()
141 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
142 .setNodeId(new NodeIdType("XPONDER-3-2"))
143 .setTxDirection(getTxDirection())
144 .setRxDirection(getRxDirection())
147 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
148 .setCommonId("commonId")
149 .setConnectionType(ConnectionType.Service)
150 .setCustomer("Customer")
151 .setServiceName("service 1")
152 .setServiceAEnd(serviceAEnd)
153 .setServiceZEnd(serviceZEnd)
154 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
155 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build())
156 .setSoftConstraints(new SoftConstraintsBuilder().build());
158 return builtInput.build();
161 public static PathComputationRequestInput createPceRequestInput(ServiceCreateInput input) {
162 MappingConstraints mappingConstraints =
163 new MappingConstraints(input.getHardConstraints(), input.getSoftConstraints());
164 mappingConstraints.serviceToServicePathConstarints();
165 ServiceHandlerHeaderBuilder serviceHandlerHeader = new ServiceHandlerHeaderBuilder();
166 SdncRequestHeader serviceHandler = input.getSdncRequestHeader();
167 if (serviceHandler != null) {
168 serviceHandlerHeader.setRequestId(serviceHandler.getRequestId());
170 return new PathComputationRequestInputBuilder()
171 .setServiceName(input.getServiceName())
172 .setResourceReserve(true)
173 .setServiceHandlerHeader(serviceHandlerHeader.build())
174 .setHardConstraints(mappingConstraints.getServicePathHardConstraints())
175 .setSoftConstraints(mappingConstraints.getServicePathSoftConstraints())
176 .setPceMetric(PceMetric.TEMetric)
177 .setServiceAEnd(ModelMappingUtils.createServiceAEnd(input.getServiceAEnd()))
178 .setServiceZEnd(ModelMappingUtils.createServiceZEnd(input.getServiceZEnd()))
182 public static TempServiceCreateInput buildTempServiceCreateInput() {
184 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.temp.service.create.input
185 .ServiceAEnd serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
186 .temp.service.create.input.ServiceAEndBuilder()
187 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
188 .setNodeId(new NodeIdType("XPONDER-1-2"))
189 .setTxDirection(getTxDirection())
190 .setRxDirection(getRxDirection())
192 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.temp.service.create.input
193 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.temp
194 .service.create.input.ServiceZEndBuilder()
195 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
196 .setNodeId(new NodeIdType("XPONDER-3-2"))
197 .setTxDirection(getTxDirection())
198 .setRxDirection(getRxDirection())
201 TempServiceCreateInputBuilder builtInput = new TempServiceCreateInputBuilder()
202 .setCommonId("commonId")
203 .setConnectionType(ConnectionType.Service)
204 .setCustomer("Customer")
205 .setServiceAEnd(serviceAEnd)
206 .setServiceZEnd(serviceZEnd)
207 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
208 .setRpcAction(RpcActions.TempServiceCreate).setNotificationUrl("notification url").build());
210 return builtInput.build();
213 public static ServiceFeasibilityCheckInput buildServiceFeasibilityCheckInput() {
215 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
216 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
217 .setNodeId(new NodeIdType("XPONDER-1-2"))
218 .setTxDirection(getTxDirection()).setRxDirection(getRxDirection()).build();
219 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
220 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
221 .setNodeId(new NodeIdType("XPONDER-3-2"))
222 .setTxDirection(getTxDirection()).setRxDirection(getRxDirection()).build();
223 ServiceAEnd serviceAEndvalue = new ServiceAEndBuilder().build();
225 ServiceFeasibilityCheckInputBuilder builtInput = new ServiceFeasibilityCheckInputBuilder()
226 .setCommonId("commonId")
227 .setConnectionType(ConnectionType.Service)
228 .setCustomer("Customer")
229 .setServiceAEnd(serviceAEnd)
230 .setServiceZEnd(serviceZEnd)
231 .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
232 .setRpcAction(RpcActions.ServiceFeasibilityCheck).setNotificationUrl("notification url").build());
233 return builtInput.build();
236 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
237 .ServiceAEndBuilder getServiceAEndBuild() {
238 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
239 .ServiceAEndBuilder()
240 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
241 .setNodeId(new NodeIdType("XPONDER-1-2"))
242 .setTxDirection(getTxDirection())
243 .setRxDirection(getRxDirection());
246 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
247 .ServiceZEndBuilder getServiceZEndBuild() {
248 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input
249 .ServiceZEndBuilder()
250 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
251 .setNodeId(new NodeIdType("XPONDER-1-2"))
252 .setTxDirection(getTxDirection())
253 .setRxDirection(getRxDirection());
256 private static TxDirection getTxDirection() {
257 return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service
258 .endpoint.TxDirectionBuilder().setPort(new PortBuilder().setPortDeviceName("device name")
259 .setPortName("port name").setPortRack("port rack").setPortShelf("port shelf")
260 .setPortSlot("port slot").setPortSubSlot("port subslot").setPortType("port type").build())
261 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name").setLgxPortName("lgx port name")
262 .setLgxPortRack("lgx port rack").setLgxPortShelf("lgx port shelf").build())
266 private static RxDirection getRxDirection() {
267 return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service
268 .endpoint.RxDirectionBuilder()
269 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
270 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
271 .setPortSubSlot("port subslot").setPortType("port type").build())
272 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
273 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
274 .setLgxPortShelf("lgx port shelf").build())
278 public static ServiceDeleteInput buildServiceDeleteInput() {
280 ServiceDeleteInputBuilder deleteInputBldr = new ServiceDeleteInputBuilder();
281 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
282 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
283 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
284 deleteInputBldr.setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder().setServiceName("service 1")
285 .setDueDate(datetime).setTailRetention(ServiceDeleteReqInfo.TailRetention.No).build());
286 SdncRequestHeaderBuilder sdncBuilder = new SdncRequestHeaderBuilder()
287 .setNotificationUrl("notification url")
288 .setRequestId("request 1")
289 .setRequestSystemId("request system 1")
290 .setRpcAction(RpcActions.ServiceDelete);
291 deleteInputBldr.setSdncRequestHeader(sdncBuilder.build());
292 return deleteInputBldr.build();
295 public static TempServiceDeleteInput buildTempServiceDeleteInput() {
296 TempServiceDeleteInputBuilder deleteInputBldr = new TempServiceDeleteInputBuilder()
297 .setCommonId("service 1");
298 return deleteInputBldr.build();
301 public static TempServiceDeleteInput buildTempServiceDeleteInput(String commonId) {
302 TempServiceDeleteInputBuilder deleteInputBldr = new TempServiceDeleteInputBuilder()
303 .setCommonId(commonId);
304 return deleteInputBldr.build();
307 public static ServiceRerouteInput buildServiceRerouteInput() {
308 ServiceRerouteInputBuilder builder = new ServiceRerouteInputBuilder()
309 .setServiceName("service 1");
310 return builder.build();
313 public static ServiceRestorationInput buildServiceRestorationInput() {
314 ServiceRestorationInputBuilder builder = new ServiceRestorationInputBuilder()
315 .setServiceName("service 1")
316 .setOption(Option.Permanent);
317 return builder.build();
320 public static ServiceReconfigureInput buildServiceReconfigureInput() {
322 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
323 .ServiceAEnd serviceAEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
324 .reconfigure.input.ServiceAEndBuilder()
325 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
326 .setNodeId(new NodeIdType("XPONDER-1-2")).setTxDirection(getTxDirection())
327 .setRxDirection(getRxDirection())
329 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
330 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service
331 .reconfigure.input.ServiceZEndBuilder()
332 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
333 .setNodeId(new NodeIdType("XPONDER-3-2")).setTxDirection(getTxDirection())
334 .setRxDirection(getRxDirection())
337 ServiceReconfigureInputBuilder builtInput = new ServiceReconfigureInputBuilder()
338 .setCommonId("commonId")
339 .setConnectionType(ConnectionType.Service)
340 .setCustomer("Customer")
341 .setServiceName("service 1")
342 .setServiceAEnd(serviceAEnd)
343 .setServiceZEnd(serviceZEnd);
344 return builtInput.build();
347 public static ServicePathRpcResult buildServicePathRpcResult() {
348 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
349 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
350 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
351 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
352 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
353 .setPathDescription(createPathDescription(0,1, 0, 1))
354 .setServiceName("service 1")
355 .setStatus(RpcStatusEx.Successful).setStatusMessage("success");
356 return builder.build();
359 public static ServicePathRpcResult buildServicePathRpcResult(
360 ServicePathNotificationTypes servicePathNotificationTypes, String serviceName, RpcStatusEx rpcStatusEx,
361 String message, Boolean pathDescription) {
362 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
363 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
364 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
365 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
366 builder.setNotificationType(servicePathNotificationTypes)
367 .setServiceName(serviceName)
368 .setStatus(rpcStatusEx).setStatusMessage(message);
369 if (pathDescription) {
370 builder.setPathDescription(createPathDescription(0L, 5L, 0L, 5L));
372 return builder.build();
375 public static ServicePathRpcResult buildFailedPceServicePathRpcResult() {
376 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
377 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
378 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
379 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
380 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
381 .setPathDescription(createPathDescription(0, 1, 0, 1)).setServiceName("service 1")
382 .setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
383 return builder.build();
386 public static ServicePathRpcResult buildFailedServicePathRpcResult() {
387 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
388 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
389 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
390 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
391 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
392 .setPathDescription(createPathDescription(0,1, 0, 1))
393 .setServiceName("service 1")
394 .setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
395 return builder.build();
398 public static ServiceRpcResultSp buildServiceRpcResultSp() {
399 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
400 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
401 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
402 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
403 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
404 .setServiceName("service 1").setStatus(RpcStatusEx.Successful).setStatusMessage("success");
405 return builder.build();
408 public static ServiceRpcResultSp buildServiceRpcResultSp(ServicePathNotificationTypes servicePathNotificationTypes,
409 String serviceName, RpcStatusEx rpcStatusEx, String message) {
410 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
411 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
412 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
413 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
414 builder.setNotificationType(servicePathNotificationTypes).setServiceName(serviceName)
415 .setStatus(rpcStatusEx).setStatusMessage(message);
416 return builder.build();
419 public static ServiceRpcResultSh buildServiceRpcResultSh(
420 ServiceNotificationTypes serviceNotificationTypes,
422 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.RpcStatusEx
425 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
426 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
427 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
428 ServiceRpcResultShBuilder builder = new ServiceRpcResultShBuilder();
429 builder.setNotificationType(serviceNotificationTypes).setServiceName(serviceName)
430 .setStatus(rpcStatusEx).setStatusMessage(message);
431 return builder.build();
434 public static ServiceRpcResultSp buildFailedServiceRpcResultSp() {
435 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
436 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
437 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
438 ServiceRpcResultSpBuilder builder = new ServiceRpcResultSpBuilder();
439 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
440 .setServiceName("service 1").setStatus(RpcStatusEx.Failed).setStatusMessage("failed");
441 return builder.build();
444 public static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
446 AToZDirection atozDirection = new AToZDirectionBuilder()
448 .setAToZWavelengthNumber(azWaveLength)
451 ZToADirection ztoaDirection = new ZToADirectionBuilder()
453 .setZToAWavelengthNumber(zaWaveLength)
456 PathDescription pathDescription = new PathDescriptionBuilder()
457 .setAToZDirection(atozDirection)
458 .setZToADirection(ztoaDirection)
460 return pathDescription;
463 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
464 .ServiceAEndBuilder getServiceAEndBuildReconfigure() {
465 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
466 .ServiceAEndBuilder()
467 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
468 .setNodeId(new NodeIdType("XPONDER-1-2"))
469 .setTxDirection(getTxDirection())
470 .setRxDirection(getRxDirection());
473 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
474 .ServiceZEndBuilder getServiceZEndBuildReconfigure() {
475 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.reconfigure.input
476 .ServiceZEndBuilder()
477 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1)
478 .setNodeId(new NodeIdType("XPONDER-1-2"))
479 .setTxDirection(getTxDirection())
480 .setRxDirection(getRxDirection());
483 public static <T> ListenableFuture<T> returnFuture(T output) {
484 final ListeningExecutorService executor =
485 MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(1));
486 return executor.submit(new Callable<T>() {
488 public T call() throws Exception {
494 private ServiceDataUtils() {