blob: b05c34efe662aa61a6d213ebd5bbb4b86d368bf1 [file] [log] [blame]
Thomas Vachuska140d5852014-10-16 12:17:45 -07001package org.onlab.onos.calendar;
2
3import org.onlab.onos.net.ConnectPoint;
4import org.onlab.onos.net.DeviceId;
5import org.onlab.onos.net.intent.IntentService;
6import org.onlab.rest.BaseResource;
7
8import javax.ws.rs.POST;
9import javax.ws.rs.Path;
10import javax.ws.rs.PathParam;
11import javax.ws.rs.core.Response;
12import java.net.URI;
13
14import static org.onlab.onos.net.PortNumber.portNumber;
15
16/**
17 * Web resource for triggering calendared intents.
18 */
19@Path("intent")
20public class BandwidthCalendarResource extends BaseResource {
21
22 @POST
23 @Path("{src}/{dst}/{srcPort}/{dstPort}/{bandwidth}")
24 public Response createIntent(@PathParam("src") String src,
25 @PathParam("dst") String dst,
26 @PathParam("srcPort") String srcPort,
27 @PathParam("dstPort") String dstPort,
28 @PathParam("bandwidth") String bandwidth) {
29 // TODO: implement calls to intent framework
30 IntentService service = get(IntentService.class);
31
32 ConnectPoint srcPoint = new ConnectPoint(deviceId(src), portNumber(srcPort));
33 ConnectPoint dstPoint = new ConnectPoint(deviceId(dst), portNumber(dstPort));
34
35 return Response.ok("Yo! We got src=" + srcPoint + "; dst=" + dstPoint +
36 "; bw=" + bandwidth + "; intent service " + service).build();
37 }
38
39 private DeviceId deviceId(String dpid) {
40 return DeviceId.deviceId(URI.create("of:" + dpid));
41 }
42
43}