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.opendaylight.transportpce.renderer.rev171017.ServiceImplementationRequestInput;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.ServiceImplementationRequestInputBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.implementation.request.input.PathDescription;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.implementation.request.input.PathDescriptionBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.implementation.request.input.ServiceAEndBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017.service.implementation.request.input.ServiceZEndBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceFormat;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
25 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
27 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
28 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZ;
29 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.atoz.direction.AToZKey;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ztoa.direction.ZToA;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ztoa.direction.ZToABuilder;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ztoa.direction.ZToAKey;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.ResourceBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.Link;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.LinkBuilder;
37 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.NodeBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPoint;
39 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource.resource.resource.TerminationPointBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.RxDirectionBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.endpoint.sp.TxDirectionBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.service.handler.header.ServiceHandlerHeaderBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.Nodes;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesKey;
48 public final class ServiceImplementationDataUtils {
50 private ServiceImplementationDataUtils() {
54 public static Nodes createNode(String nodeId, String srcTp, String dstTp) {
55 return new NodesBuilder().setNodeId(nodeId).withKey(new NodesKey(nodeId)).setSrcTp(srcTp)
56 .setDestTp(dstTp).build();
59 public static ServicePathInput buildServicePathInputs(List<Nodes> nodes) {
60 ServicePathInputBuilder servicePathInputBuilder = new ServicePathInputBuilder();
61 servicePathInputBuilder.setNodes(nodes);
62 servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
63 return servicePathInputBuilder.build();
66 public static ServicePathInput buildServicePathInputs() {
67 ServicePathInputBuilder servicePathInputBuilder = new ServicePathInputBuilder();
68 List<Nodes> nodes = new ArrayList<>();
69 nodes.add(ServiceImplementationDataUtils.createNode("node1", "src", "dst"));
70 servicePathInputBuilder.setNodes(nodes);
71 servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
72 return servicePathInputBuilder.build();
75 public static RendererRollbackInput buildRendererRollbackInput() {
76 RendererRollbackInputBuilder rendererRollbackInputBuilder = new RendererRollbackInputBuilder();
77 rendererRollbackInputBuilder.setNodeInterface(new ArrayList<>());
78 return rendererRollbackInputBuilder.build();
81 public static ServiceImplementationRequestInput buildServiceImplementationRequestInputTerminationPointResource(
83 ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
84 .setServiceName("service 1").setPathDescription(createPathDescriptionTerminationPointResource(tpId))
85 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
86 .setServiceAEnd(getServiceAEndBuild().build())
87 .setServiceZEnd(getServiceZEndBuild().build());
88 return builder.build();
91 public static ServiceImplementationRequestInput buildServiceImplementationRequestInputInvalidResource() {
92 ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
93 .setServiceName("service 1").setPathDescription(createPathDescriptionInvalidResource())
94 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
95 .setServiceAEnd(getServiceAEndBuild().build())
96 .setServiceZEnd(getServiceZEndBuild().build());
97 return builder.build();
100 public static ServiceImplementationRequestInput buildServiceImplementationRequestInputLinkResource() {
101 ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
102 .setServiceName("service 1").setPathDescription(createPathDescriptionLinkResource())
103 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
104 .setServiceAEnd(getServiceAEndBuild().build())
105 .setServiceZEnd(getServiceZEndBuild().build());
106 return builder.build();
109 private static PathDescription createPathDescriptionInvalidResource() {
110 List<AToZ> atoZList = new ArrayList<AToZ>();
111 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource
112 .resource.resource.NodeBuilder nodesBuilder = new NodeBuilder();
113 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource
114 .resource.resource.Node node1 = nodesBuilder.setNodeId("XPONDER-1-2").build();
115 org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.pce.resource
116 .resource.resource.Node node2 = nodesBuilder.setNodeId("XPONDER-1-2").build();
117 AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
118 .setResource(node1).build()).build();
119 AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
120 .setResource(node2).build()).build();
123 AToZDirection atozDirection = new AToZDirectionBuilder()
125 .setAToZWavelengthNumber(20L)
128 List<ZToA> ztoAList = new ArrayList<ZToA>();
129 ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
130 .setResource(node1).build()).build();
131 ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
132 .setResource(node2).build()).build();
135 ZToADirection ztoaDirection = new ZToADirectionBuilder()
137 .setZToAWavelengthNumber(20L)
140 PathDescriptionBuilder builder = new PathDescriptionBuilder()
141 .setAToZDirection(atozDirection)
142 .setZToADirection(ztoaDirection);
143 return builder.build();
146 public static PathDescription createPathDescriptionTerminationPointResource(String tpId) {
147 List<AToZ> atoZList = new ArrayList<AToZ>();
148 TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder();
149 TerminationPoint terminationPoint = terminationPointBuilder.setTpNodeId("XPONDER-1-2")
150 .setTpId("XPONDER-1-2-" + tpId).build();
151 TerminationPoint terminationPoint2 = terminationPointBuilder.setTpNodeId("XPONDER-1-2")
152 .setTpId("XPONDER-1-2-" + tpId).build();
153 AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
154 .setResource(terminationPoint).build()).build();
155 AToZ atoZ2 = new AToZBuilder().setId("2").withKey(new AToZKey("2")).setResource(new ResourceBuilder()
156 .setResource(terminationPoint2).build()).build();
159 AToZDirection atozDirection = new AToZDirectionBuilder()
161 .setAToZWavelengthNumber(20L)
164 List<ZToA> ztoAList = new ArrayList<ZToA>();
165 ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
166 .setResource(terminationPoint).build()).build();
167 ZToA ztoA2 = new ZToABuilder().setId("2").withKey(new ZToAKey("2")).setResource(new ResourceBuilder()
168 .setResource(terminationPoint).build()).build();
171 ZToADirection ztoaDirection = new ZToADirectionBuilder()
173 .setZToAWavelengthNumber(20L)
176 PathDescriptionBuilder builder = new PathDescriptionBuilder()
177 .setAToZDirection(atozDirection)
178 .setZToADirection(ztoaDirection);
179 return builder.build();
182 private static PathDescription createPathDescriptionLinkResource() {
183 List<AToZ> atoZList = new ArrayList<AToZ>();
184 Link link1 = new LinkBuilder().setLinkId("link 1").build();
185 Link link2 = new LinkBuilder().setLinkId("link 2").build();
186 AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
187 .setResource(link1).build()).build();
188 AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
189 .setResource(link2).build()).build();
192 AToZDirection atozDirection = new AToZDirectionBuilder()
194 .setAToZWavelengthNumber(20L)
197 List<ZToA> ztoAList = new ArrayList<ZToA>();
198 ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
199 .setResource(link1).build()).build();
200 ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
201 .setResource(link2).build()).build();
204 ZToADirection ztoaDirection = new ZToADirectionBuilder()
206 .setZToAWavelengthNumber(20L)
209 PathDescriptionBuilder builder = new PathDescriptionBuilder()
210 .setAToZDirection(atozDirection)
211 .setZToADirection(ztoaDirection);
212 return builder.build();
215 public static ServiceAEndBuilder getServiceAEndBuild() {
216 return new ServiceAEndBuilder()
217 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
219 new TxDirectionBuilder()
220 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
221 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
222 .setPortSubSlot("port subslot").setPortType("port type").build())
225 new RxDirectionBuilder()
226 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
227 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
228 .setPortSubSlot("port subslot").setPortType("port type").build())
232 public static ServiceZEndBuilder getServiceZEndBuild() {
233 return new ServiceZEndBuilder()
234 .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
236 new TxDirectionBuilder()
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())
242 new RxDirectionBuilder()
243 .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
244 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
245 .setPortSubSlot("port subslot").setPortType("port type").build())