Initial commit for ServiceHandler
[transportpce.git] / stubpce / src / main / java / org / opendaylight / transportpce / stubpce / SendingPceRPCs.java
1 /*
2  * Copyright © 2017 Orange, 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
9
10 package org.opendaylight.transportpce.stubpce;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirection;
16 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirectionBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirection;
18 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirectionBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZ;
20 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZKey;
22 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToA;
23 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToABuilder;
24 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToAKey;
25 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.Resource;
26 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.ResourceBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.Link;
28 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.LinkBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.Node;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.NodeBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.response.parameters.sp.response.parameters.PathDescriptionBuilder;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34
35 /*
36  * Class for Sending
37  * PCE requests :
38  * - path-computation-request
39  * - cancel-resource-reserve.
40  * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
41  *
42  */
43 public class SendingPceRPCs {
44
45     /* Logging. */
46     private static final Logger LOG = LoggerFactory.getLogger(SendingPceRPCs.class);
47     /* define procedure success (or not ). */
48     private Boolean success;
49     /* define type of request<br>
50      * <code>true</code> pathcomputation <br>
51      * <code>false</code> cancelresourcereserve .*/
52     private AToZDirection atozdirection;
53     private ZToADirection ztoadirection;
54     private PathDescriptionBuilder pathDescription;
55
56
57     public SendingPceRPCs() {
58         success = true;
59         atozdirection = null;
60         ztoadirection = null;
61         setPathDescription(null);
62     }
63
64     public void cancelResourceReserve() {
65         LOG.info("Wait for 10s til beginning the PCE cancelResourceReserve request");
66         try {
67             Thread.sleep(10000); //sleep for 10s
68         } catch (InterruptedException e) {
69             LOG.error(e.toString());
70         }
71         LOG.info("cancelResourceReserve ...");
72     }
73
74     public void pathComputation() {
75         LOG.info("Wait for 10s til beginning the PCE pathComputation request");
76         try {
77             Thread.sleep(10000); //sleep for 10s
78         } catch (InterruptedException e) {
79             LOG.error(e.toString());
80         }
81         LOG.info("PathComputation ...");
82         buildAToZ();
83         buildZToA();
84
85         setPathDescription(new PathDescriptionBuilder()
86             .setAToZDirection(atozdirection)
87             .setZToADirection(ztoadirection));
88     }
89
90     public void buildAToZ() {
91         Link atoB = new LinkBuilder()
92             .setLinkId("AtoB")
93             .build();
94         Link btoZ = new LinkBuilder()
95             .setLinkId("BtoZ")
96             .build();
97
98         Node roadmA = new NodeBuilder()
99             .setNodeId("RoadmA")
100             .build();
101         Node roadmB = new NodeBuilder()
102             .setNodeId("RoadmB")
103             .build();
104         Node roadmZ = new NodeBuilder()
105             .setNodeId("RoadmZ")
106             .build();
107
108         /*A -> Z*/
109         /*RoadmA*/
110         AToZKey roadmAKey = new AToZKey("RoadmA");
111         Resource roadmAResource = new ResourceBuilder()
112             .setResource(roadmA)
113             .build();
114         AToZ atoz = new AToZBuilder()
115             .setId("RoadmA")
116             .setKey(roadmAKey)
117             .setResource(roadmAResource)
118             .build();
119         /*Link AtoB*/
120         AToZKey atoBKey = new AToZKey("AtoB");
121         Resource atozResource = new ResourceBuilder()
122             .setResource(atoB)
123             .build();
124         AToZ atob = new AToZBuilder()
125             .setId("AtoB")
126             .setKey(atoBKey)
127             .setResource(atozResource)
128             .build();
129         /*RoadmB*/
130         AToZKey roadmBKey = new AToZKey("RoadmB");
131         Resource roadmBResource = new ResourceBuilder()
132             .setResource(roadmB)
133             .build();
134         AToZ roadmb = new AToZBuilder()
135             .setId("RoadmB")
136             .setKey(roadmBKey)
137             .setResource(roadmBResource)
138             .build();
139         /*Link BtoZ*/
140         AToZKey btoZKey = new AToZKey("BtoZ");
141         Resource botzResource = new ResourceBuilder()
142             .setResource(btoZ)
143             .build();
144         AToZ btoz = new AToZBuilder()
145             .setId("BtoZ")
146             .setKey(btoZKey)
147             .setResource(botzResource)
148             .build();
149         /*RoadmZ*/
150         AToZKey roadmZKey = new AToZKey("RoadmZ");
151         Resource roadmZResource = new ResourceBuilder()
152             .setResource(roadmZ)
153             .build();
154         AToZ roadmz = new AToZBuilder()
155             .setId("RoadmZ")
156             .setKey(roadmZKey)
157             .setResource(roadmZResource)
158             .build();
159
160         List<AToZ> atozList = new ArrayList<AToZ>();
161         atozList.add(atoz);
162         atozList.add(atob);
163         atozList.add(roadmb);
164         atozList.add(btoz);
165         atozList.add(roadmz);
166
167         atozdirection = new AToZDirectionBuilder()
168             .setRate((long)100)
169             .setAToZWavelengthNumber((long)200)
170             .setAToZ(atozList)
171             .build();
172     }
173
174     public void buildZToA() {
175
176         Link btoA = new LinkBuilder()
177             .setLinkId("BtoA")
178             .build();
179         Link ztoB = new LinkBuilder()
180             .setLinkId("ZtoB")
181             .build();
182
183         Node roadmA = new NodeBuilder()
184             .setNodeId("RoadmA")
185             .build();
186         Node roadmB = new NodeBuilder()
187             .setNodeId("RoadmB")
188             .build();
189         Node roadmZ = new NodeBuilder()
190             .setNodeId("RoadmZ")
191             .build();
192
193         /*Z -> A*/
194         /*RoadmZ*/
195         ZToAKey roadmZKey = new ZToAKey("RoadmZ");
196         Resource roadmZResource = new ResourceBuilder()
197             .setResource(roadmZ)
198             .build();
199         ZToA ztoa = new ZToABuilder()
200             .setId("RoadmZ")
201             .setKey(roadmZKey)
202             .setResource(roadmZResource)
203             .build();
204         /*Link ZtoB*/
205         ZToAKey ztoBKey = new ZToAKey("ZtoB");
206         Resource ztoBResource = new ResourceBuilder()
207             .setResource(ztoB)
208             .build();
209         ZToA ztob = new ZToABuilder()
210             .setId("ZtoB")
211             .setKey(ztoBKey)
212             .setResource(ztoBResource)
213             .build();
214         /*RoadmB*/
215         ZToAKey roadmBKey = new ZToAKey("RoadmB");
216         Resource roadmBResource = new ResourceBuilder()
217             .setResource(roadmB)
218             .build();
219         ZToA roadmb = new ZToABuilder()
220             .setId("RoadmB")
221             .setKey(roadmBKey)
222             .setResource(roadmBResource)
223             .build();
224         /*Link BtoA*/
225         ZToAKey btoAKey = new ZToAKey("BtoA");
226         Resource btoAResource = new ResourceBuilder()
227             .setResource(btoA)
228             .build();
229         ZToA btoa = new ZToABuilder()
230             .setId("BtoA")
231             .setKey(btoAKey)
232             .setResource(btoAResource)
233             .build();
234         /* RoadmA*/
235         ZToAKey roadmAKey = new ZToAKey("RoadmA");
236         Resource roadmAResource = new ResourceBuilder()
237             .setResource(roadmA)
238             .build();
239         ZToA roadma = new ZToABuilder()
240             .setId("RoadmA")
241             .setKey(roadmAKey)
242             .setResource(roadmAResource)
243             .build();
244
245         List<ZToA> ztoaList = new ArrayList<ZToA>();
246         ztoaList.add(ztoa);
247         ztoaList.add(ztob);
248         ztoaList.add(roadmb);
249         ztoaList.add(btoa);
250         ztoaList.add(roadma);
251
252         ztoadirection = new ZToADirectionBuilder()
253             .setRate((long)100)
254             .setZToAWavelengthNumber((long)100)
255             .setZToA(ztoaList)
256             .build();
257     }
258
259     public PathDescriptionBuilder getPathDescription() {
260         return pathDescription;
261     }
262
263     public void setPathDescription(PathDescriptionBuilder pathDescription) {
264         this.pathDescription = pathDescription;
265     }
266
267     public Boolean getSuccess() {
268         return success;
269     }
270
271     public void setSuccess(Boolean success) {
272         this.success = success;
273     }
274
275 }