2 * Copyright © 2018 Orange Systems, 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.renderer.utils;
10 import java.util.ArrayList;
11 import java.util.List;
12 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.device.rev170228.RendererRollbackInput;
13 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.device.rev170228.RendererRollbackInputBuilder;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.device.rev170228.ServicePathInput;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.device.rev170228.ServicePathInputBuilder;
16 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceFormat;
17 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirection;
19 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirectionBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirection;
21 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirectionBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZ;
23 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZKey;
25 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToA;
26 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToABuilder;
27 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToAKey;
28 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.ResourceBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.Link;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.LinkBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.NodeBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.TerminationPoint;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.TerminationPointBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.link.LinkIdentifierBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.node.NodeIdentifierBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.termination.point.TerminationPointIdentifierBuilder;
37 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.RxDirectionBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.TxDirectionBuilder;
39 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.handler.header.ServiceHandlerHeaderBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInput;
41 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInputBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.PathDescription;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.PathDescriptionBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.ServiceAEndBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.ServiceZEndBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.Nodes;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesKey;
51 public final class ServiceImplementationDataUtils {
53 private ServiceImplementationDataUtils() {
57 public static Nodes createNode(String nodeId, String srcTp, String dstTp) {
58 return new NodesBuilder().setNodeId(nodeId).withKey(new NodesKey(nodeId)).setSrcTp(srcTp)
59 .setDestTp(dstTp).build();
62 public static ServicePathInput buildServicePathInputs(List<Nodes> nodes) {
63 ServicePathInputBuilder servicePathInputBuilder = new ServicePathInputBuilder();
64 servicePathInputBuilder.setNodes(nodes);
65 servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
66 return servicePathInputBuilder.build();
69 public static ServicePathInput buildServicePathInputs() {
70 ServicePathInputBuilder servicePathInputBuilder = new ServicePathInputBuilder();
71 List<Nodes> nodes = new ArrayList<>();
72 nodes.add(ServiceImplementationDataUtils.createNode("node1", "src", "dst"));
73 servicePathInputBuilder.setNodes(nodes);
74 servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
75 return servicePathInputBuilder.build();
78 public static RendererRollbackInput buildRendererRollbackInput() {
79 RendererRollbackInputBuilder rendererRollbackInputBuilder = new RendererRollbackInputBuilder();
80 rendererRollbackInputBuilder.setNodeInterface(new ArrayList<>());
81 return rendererRollbackInputBuilder.build();
84 public static ServiceImplementationRequestInput buildServiceImplementationRequestInputTerminationPointResource(
86 ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
87 .setServiceName("service 1").setPathDescription(createPathDescriptionTerminationPointResource(tpId))
88 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
89 .setServiceAEnd(getServiceAEndBuild().build())
90 .setServiceZEnd(getServiceZEndBuild().build());
91 return builder.build();
94 public static ServiceImplementationRequestInput buildServiceImplementationRequestInputInvalidResource() {
95 ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
96 .setServiceName("service 1").setPathDescription(createPathDescriptionInvalidResource())
97 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
98 .setServiceAEnd(getServiceAEndBuild().build())
99 .setServiceZEnd(getServiceZEndBuild().build());
100 return builder.build();
103 public static ServiceImplementationRequestInput buildServiceImplementationRequestInputLinkResource() {
104 ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
105 .setServiceName("service 1").setPathDescription(createPathDescriptionLinkResource())
106 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
107 .setServiceAEnd(getServiceAEndBuild().build())
108 .setServiceZEnd(getServiceZEndBuild().build());
109 return builder.build();
112 private static PathDescription createPathDescriptionInvalidResource() {
113 List<AToZ> atoZList = new ArrayList<AToZ>();
114 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
115 .resource.resource.NodeBuilder nodesBuilder = new NodeBuilder();
116 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
117 .resource.resource.Node node1 = nodesBuilder.setNodeIdentifier(new NodeIdentifierBuilder()
118 .setNodeId("XPONDER-1-2").build()).build();
119 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
120 .resource.resource.Node node2 = nodesBuilder.setNodeIdentifier(new NodeIdentifierBuilder()
121 .setNodeId("XPONDER-1-2").build()).build();
122 AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
123 .setResource(node1).build()).build();
124 AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
125 .setResource(node2).build()).build();
128 AToZDirection atozDirection = new AToZDirectionBuilder()
130 .setAToZWavelengthNumber(20L)
133 List<ZToA> ztoAList = new ArrayList<ZToA>();
134 ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
135 .setResource(node1).build()).build();
136 ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
137 .setResource(node2).build()).build();
140 ZToADirection ztoaDirection = new ZToADirectionBuilder()
142 .setZToAWavelengthNumber(20L)
145 PathDescriptionBuilder builder = new PathDescriptionBuilder()
146 .setAToZDirection(atozDirection)
147 .setZToADirection(ztoaDirection);
148 return builder.build();
151 public static PathDescription createPathDescriptionTerminationPointResource(String tpId) {
152 List<AToZ> atoZList = new ArrayList<AToZ>();
153 TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder();
154 TerminationPoint terminationPoint = terminationPointBuilder
155 .setTerminationPointIdentifier(new TerminationPointIdentifierBuilder().setNodeId("XPONDER-1-2")
156 .setTpId("XPONDER-1-2-" + tpId).build()).build();
157 TerminationPoint terminationPoint2 = terminationPointBuilder
158 .setTerminationPointIdentifier(new TerminationPointIdentifierBuilder().setNodeId("XPONDER-1-2")
159 .setTpId("XPONDER-1-2-" + tpId).build()).build();
160 AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
161 .setResource(terminationPoint).build()).build();
162 AToZ atoZ2 = new AToZBuilder().setId("2").withKey(new AToZKey("2")).setResource(new ResourceBuilder()
163 .setResource(terminationPoint2).build()).build();
166 AToZDirection atozDirection = new AToZDirectionBuilder()
168 .setAToZWavelengthNumber(20L)
171 List<ZToA> ztoAList = new ArrayList<ZToA>();
172 ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
173 .setResource(terminationPoint).build()).build();
174 ZToA ztoA2 = new ZToABuilder().setId("2").withKey(new ZToAKey("2")).setResource(new ResourceBuilder()
175 .setResource(terminationPoint).build()).build();
178 ZToADirection ztoaDirection = new ZToADirectionBuilder()
180 .setZToAWavelengthNumber(20L)
183 PathDescriptionBuilder builder = new PathDescriptionBuilder()
184 .setAToZDirection(atozDirection)
185 .setZToADirection(ztoaDirection);
186 return builder.build();
189 private static PathDescription createPathDescriptionLinkResource() {
190 List<AToZ> atoZList = new ArrayList<AToZ>();
191 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
192 .resource.resource.NodeBuilder nodesBuilder = new NodeBuilder();
193 Link link1 = new LinkBuilder().setLinkIdentifier(new LinkIdentifierBuilder().setLinkId("link 1").build())
195 Link link2 = new LinkBuilder().setLinkIdentifier(new LinkIdentifierBuilder().setLinkId("link 2").build())
197 AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
198 .setResource(link1).build()).build();
199 AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
200 .setResource(link2).build()).build();
203 AToZDirection atozDirection = new AToZDirectionBuilder()
205 .setAToZWavelengthNumber(20L)
208 List<ZToA> ztoAList = new ArrayList<ZToA>();
209 ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
210 .setResource(link1).build()).build();
211 ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
212 .setResource(link2).build()).build();
215 ZToADirection ztoaDirection = new ZToADirectionBuilder()
217 .setZToAWavelengthNumber(20L)
220 PathDescriptionBuilder builder = new PathDescriptionBuilder()
221 .setAToZDirection(atozDirection)
222 .setZToADirection(ztoaDirection);
223 return builder.build();
226 public static ServiceAEndBuilder getServiceAEndBuild() {
227 return new ServiceAEndBuilder()
228 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
230 new TxDirectionBuilder()
231 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
232 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
233 .setPortSubSlot("port subslot").setPortType("port type").build())
236 new RxDirectionBuilder()
237 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
238 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
239 .setPortSubSlot("port subslot").setPortType("port type").build())
243 public static ServiceZEndBuilder getServiceZEndBuild() {
244 return new ServiceZEndBuilder()
245 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
247 new TxDirectionBuilder()
248 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
249 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
250 .setPortSubSlot("port subslot").setPortType("port type").build())
253 new RxDirectionBuilder()
254 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
255 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
256 .setPortSubSlot("port subslot").setPortType("port type").build())