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 java.time.OffsetDateTime;
11 import java.time.ZoneOffset;
12 import java.time.format.DateTimeFormatter;
13 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.ServicePathRpcResult;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.ServicePathRpcResultBuilder;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.service.path.rpc.result.PathDescription;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.service.path.rpc.result.PathDescriptionBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ConnectionType;
18 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.RpcActions;
19 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceFormat;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeaderBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.lgx.LgxBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInput;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInputBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceDeleteInput;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceDeleteInputBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRerouteInput;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceRerouteInputBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.delete.input.ServiceDeleteReqInfo;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.delete.input.ServiceDeleteReqInfoBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.RpcStatusEx;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.ServicePathNotificationTypes;
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
39 public final class ServiceDataUtils {
41 public static ServiceCreateInput buildServiceCreateInput() {
43 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder();
44 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
45 .ServiceAEnd serviceAEnd = getServiceAEndBuild()
47 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
48 .ServiceZEnd serviceZEnd = new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service
49 .create.input.ServiceZEndBuilder()
50 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-3-2")
52 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
53 .endpoint.TxDirectionBuilder()
54 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
55 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
56 .setPortSubSlot("port subslot").setPortType("port type").build())
57 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
58 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
59 .setLgxPortShelf("lgx port shelf").build())
62 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
63 .endpoint.RxDirectionBuilder()
64 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
65 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
66 .setPortSubSlot("port subslot").setPortType("port type").build())
67 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
68 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
69 .setLgxPortShelf("lgx port shelf").build())
73 builtInput.setCommonId("commonId");
74 builtInput.setConnectionType(ConnectionType.Service);
75 builtInput.setCustomer("Customer");
76 builtInput.setServiceName("service 1");
77 builtInput.setServiceAEnd(serviceAEnd);
78 builtInput.setServiceZEnd(serviceZEnd);
79 builtInput.setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
80 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build());
82 return builtInput.build();
85 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
86 .ServiceAEndBuilder getServiceAEndBuild() {
87 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
89 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
91 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
92 .endpoint.TxDirectionBuilder()
93 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
94 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
95 .setPortSubSlot("port subslot").setPortType("port type").build())
96 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
97 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
98 .setLgxPortShelf("lgx port shelf").build())
101 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
102 .endpoint.RxDirectionBuilder()
103 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
104 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
105 .setPortSubSlot("port subslot").setPortType("port type").build())
106 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
107 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
108 .setLgxPortShelf("lgx port shelf").build())
112 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
113 .ServiceZEndBuilder getServiceZEndBuild() {
114 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.create.input
115 .ServiceZEndBuilder()
116 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
118 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
119 .endpoint.TxDirectionBuilder()
120 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
121 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
122 .setPortSubSlot("port subslot").setPortType("port type").build())
123 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
124 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
125 .setLgxPortShelf("lgx port shelf").build())
128 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
129 .endpoint.RxDirectionBuilder()
130 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
131 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
132 .setPortSubSlot("port subslot").setPortType("port type").build())
133 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
134 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
135 .setLgxPortShelf("lgx port shelf").build())
139 public static ServiceDeleteInput buildServiceDeleteInput() {
140 ServiceDeleteInputBuilder deleteInputBldr = new ServiceDeleteInputBuilder();
141 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
142 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
143 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
144 deleteInputBldr.setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder().setServiceName("service 1")
145 .setDueDate(datetime).setTailRetention(ServiceDeleteReqInfo.TailRetention.No).build());
146 SdncRequestHeaderBuilder sdncBuilder = new SdncRequestHeaderBuilder();
147 sdncBuilder.setNotificationUrl("notification url");
148 sdncBuilder.setRequestId("request 1");
149 sdncBuilder.setRequestSystemId("request system 1");
150 sdncBuilder.setRpcAction(RpcActions.ServiceDelete);
151 deleteInputBldr.setSdncRequestHeader(sdncBuilder.build());
152 return deleteInputBldr.build();
155 public static ServiceRerouteInput buildServiceRerouteInput() {
156 ServiceRerouteInputBuilder builder = new ServiceRerouteInputBuilder();
157 builder.setServiceName("service 1");
158 return builder.build();
161 public static ServicePathRpcResult buildServicePathRpcResult() {
162 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
163 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
164 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
165 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
166 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
167 .setPathDescription(createPathDescription(0,1, 0, 1))
168 .setServiceName("service 1")
169 .setStatus(RpcStatusEx.Successful).setStatusMessage("success");
170 return builder.build();
173 public static ServicePathRpcResult buildFailedServicePathRpcResult() {
174 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");
175 OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.UTC);
176 DateAndTime datetime = new DateAndTime(dtf.format(offsetDateTime));
177 ServicePathRpcResultBuilder builder = new ServicePathRpcResultBuilder();
178 builder.setActualDate(datetime).setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
179 .setPathDescription(createPathDescription(0,1, 0, 1))
180 .setServiceName("service 1")
181 .setStatus(RpcStatusEx.Failed).setStatusMessage("success");
182 return builder.build();
185 private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
187 AToZDirection atozDirection = new AToZDirectionBuilder()
189 .setAToZWavelengthNumber(azWaveLength)
192 ZToADirection ztoaDirection = new ZToADirectionBuilder()
194 .setZToAWavelengthNumber(zaWaveLength)
197 PathDescription pathDescription = new PathDescriptionBuilder()
198 .setAToZDirection(atozDirection)
199 .setZToADirection(ztoaDirection)
201 return pathDescription;
204 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
205 .ServiceAEndBuilder getServiceAEndBuildReconfigure() {
206 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
207 .ServiceAEndBuilder()
208 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
210 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
211 .endpoint.TxDirectionBuilder()
212 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
213 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
214 .setPortSubSlot("port subslot").setPortType("port type").build())
215 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
216 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
217 .setLgxPortShelf("lgx port shelf").build())
220 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
221 .endpoint.RxDirectionBuilder()
222 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
223 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
224 .setPortSubSlot("port subslot").setPortType("port type").build())
225 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
226 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
227 .setLgxPortShelf("lgx port shelf").build())
231 public static org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
232 .ServiceZEndBuilder getServiceZEndBuildReconfigure() {
233 return new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.reconfigure.input
234 .ServiceZEndBuilder()
235 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
237 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
238 .endpoint.TxDirectionBuilder()
239 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
240 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
241 .setPortSubSlot("port subslot").setPortType("port type").build())
242 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
243 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
244 .setLgxPortShelf("lgx port shelf").build())
247 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service
248 .endpoint.RxDirectionBuilder()
249 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
250 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
251 .setPortSubSlot("port subslot").setPortType("port type").build())
252 .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
253 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
254 .setLgxPortShelf("lgx port shelf").build())
258 private ServiceDataUtils() {