Reintroduce SP 1.6 models in TPCE
[transportpce.git] / renderer / src / test / java / org / opendaylight / transportpce / renderer / utils / ServiceImplementationDataUtils.java
1 /*
2  * Copyright © 2018 Orange Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.transportpce.renderer.utils;
9
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;
46
47
48 public final class ServiceImplementationDataUtils {
49
50     private ServiceImplementationDataUtils() {
51
52     }
53
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();
57     }
58
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();
64     }
65
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();
73     }
74
75     public static RendererRollbackInput buildRendererRollbackInput() {
76         RendererRollbackInputBuilder rendererRollbackInputBuilder = new RendererRollbackInputBuilder();
77         rendererRollbackInputBuilder.setNodeInterface(new ArrayList<>());
78         return rendererRollbackInputBuilder.build();
79     }
80
81     public static ServiceImplementationRequestInput buildServiceImplementationRequestInputTerminationPointResource(
82         String tpId) {
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();
89     }
90
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();
98     }
99
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();
107     }
108
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();
121         atoZList.add(atoZ);
122         atoZList.add(atoZ2);
123         AToZDirection atozDirection = new AToZDirectionBuilder()
124             .setRate(20L)
125             .setAToZWavelengthNumber(20L)
126             .setAToZ(atoZList)
127             .build();
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();
133         ztoAList.add(ztoA);
134         ztoAList.add(ztoA2);
135         ZToADirection ztoaDirection = new ZToADirectionBuilder()
136             .setRate(20L)
137             .setZToAWavelengthNumber(20L)
138             .setZToA(ztoAList)
139             .build();
140         PathDescriptionBuilder builder = new PathDescriptionBuilder()
141             .setAToZDirection(atozDirection)
142             .setZToADirection(ztoaDirection);
143         return builder.build();
144     }
145
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();
157         atoZList.add(atoZ);
158         atoZList.add(atoZ2);
159         AToZDirection atozDirection = new AToZDirectionBuilder()
160             .setRate(20L)
161             .setAToZWavelengthNumber(20L)
162             .setAToZ(atoZList)
163             .build();
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();
169         ztoAList.add(ztoA);
170         ztoAList.add(ztoA2);
171         ZToADirection ztoaDirection = new ZToADirectionBuilder()
172             .setRate(20L)
173             .setZToAWavelengthNumber(20L)
174             .setZToA(ztoAList)
175             .build();
176         PathDescriptionBuilder builder = new PathDescriptionBuilder()
177             .setAToZDirection(atozDirection)
178             .setZToADirection(ztoaDirection);
179         return builder.build();
180     }
181
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();
190         atoZList.add(atoZ);
191         atoZList.add(atoZ2);
192         AToZDirection atozDirection = new AToZDirectionBuilder()
193             .setRate(20L)
194             .setAToZWavelengthNumber(20L)
195             .setAToZ(atoZList)
196             .build();
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();
202         ztoAList.add(ztoA);
203         ztoAList.add(ztoA2);
204         ZToADirection ztoaDirection = new ZToADirectionBuilder()
205             .setRate(20L)
206             .setZToAWavelengthNumber(20L)
207             .setZToA(ztoAList)
208             .build();
209         PathDescriptionBuilder builder = new PathDescriptionBuilder()
210             .setAToZDirection(atozDirection)
211             .setZToADirection(ztoaDirection);
212         return builder.build();
213     }
214
215     public static ServiceAEndBuilder getServiceAEndBuild() {
216         return new ServiceAEndBuilder()
217             .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
218             .setTxDirection(
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())
223                     .build())
224             .setRxDirection(
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())
229                     .build());
230     }
231
232     public static ServiceZEndBuilder getServiceZEndBuild() {
233         return new ServiceZEndBuilder()
234             .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
235             .setTxDirection(
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())
240                     .build())
241             .setRxDirection(
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())
246                     .build());
247     }
248
249 }