update
added modify and teardown cases worked with external app for UC1 demo Change-Id: Ia4c71cb006ff9f9eb7b7ebd43753509e7ad0763b
Showing
2 changed files
with
76 additions
and
21 deletions
| ... | @@ -62,6 +62,32 @@ | ... | @@ -62,6 +62,32 @@ |
| 62 | <groupId>org.osgi</groupId> | 62 | <groupId>org.osgi</groupId> |
| 63 | <artifactId>org.osgi.core</artifactId> | 63 | <artifactId>org.osgi.core</artifactId> |
| 64 | </dependency> | 64 | </dependency> |
| 65 | + | ||
| 66 | + <dependency> | ||
| 67 | + <groupId>org.onlab.onos</groupId> | ||
| 68 | + <artifactId>onlab-thirdparty</artifactId> | ||
| 69 | + </dependency> | ||
| 70 | + | ||
| 71 | + <dependency> | ||
| 72 | + <groupId>org.onlab.onos</groupId> | ||
| 73 | + <artifactId>onlab-misc</artifactId> | ||
| 74 | + </dependency> | ||
| 75 | + | ||
| 76 | + <dependency> | ||
| 77 | + <groupId>org.onlab.onos</groupId> | ||
| 78 | + <artifactId>onlab-junit</artifactId> | ||
| 79 | + <scope>test</scope> | ||
| 80 | + </dependency> | ||
| 81 | + | ||
| 82 | + <dependency> | ||
| 83 | + <groupId>org.onlab.onos</groupId> | ||
| 84 | + <artifactId>onos-cli</artifactId> | ||
| 85 | + <version>${project.version}</version> | ||
| 86 | + </dependency> | ||
| 87 | + <dependency> | ||
| 88 | + <groupId>org.apache.karaf.shell</groupId> | ||
| 89 | + <artifactId>org.apache.karaf.shell.console</artifactId> | ||
| 90 | + </dependency> | ||
| 65 | </dependencies> | 91 | </dependencies> |
| 66 | 92 | ||
| 67 | <build> | 93 | <build> |
| ... | @@ -77,6 +103,7 @@ | ... | @@ -77,6 +103,7 @@ |
| 77 | ${project.groupId}.${project.artifactId} | 103 | ${project.groupId}.${project.artifactId} |
| 78 | </Bundle-SymbolicName> | 104 | </Bundle-SymbolicName> |
| 79 | <Import-Package> | 105 | <Import-Package> |
| 106 | + org.slf4j, | ||
| 80 | org.osgi.framework, | 107 | org.osgi.framework, |
| 81 | javax.ws.rs,javax.ws.rs.core, | 108 | javax.ws.rs,javax.ws.rs.core, |
| 82 | com.sun.jersey.api.core, | 109 | com.sun.jersey.api.core, | ... | ... |
| ... | @@ -16,43 +16,47 @@ | ... | @@ -16,43 +16,47 @@ |
| 16 | package org.onlab.onos.calendar; | 16 | package org.onlab.onos.calendar; |
| 17 | 17 | ||
| 18 | import java.net.URI; | 18 | import java.net.URI; |
| 19 | - | 19 | +import org.onlab.onos.net.ConnectPoint; |
| 20 | +import org.onlab.onos.net.DeviceId; | ||
| 21 | +import org.onlab.onos.net.intent.IntentService; | ||
| 22 | +import org.onlab.rest.BaseResource; | ||
| 20 | import javax.ws.rs.POST; | 23 | import javax.ws.rs.POST; |
| 21 | -import javax.ws.rs.Path; | 24 | +import javax.ws.rs.DELETE; |
| 22 | import javax.ws.rs.PathParam; | 25 | import javax.ws.rs.PathParam; |
| 23 | import javax.ws.rs.core.Response; | 26 | import javax.ws.rs.core.Response; |
| 24 | - | ||
| 25 | import org.onlab.onos.core.ApplicationId; | 27 | import org.onlab.onos.core.ApplicationId; |
| 26 | import org.onlab.onos.core.CoreService; | 28 | import org.onlab.onos.core.CoreService; |
| 27 | -import org.onlab.onos.net.ConnectPoint; | ||
| 28 | -import org.onlab.onos.net.DeviceId; | ||
| 29 | import org.onlab.onos.net.flow.DefaultTrafficSelector; | 29 | import org.onlab.onos.net.flow.DefaultTrafficSelector; |
| 30 | import org.onlab.onos.net.flow.TrafficSelector; | 30 | import org.onlab.onos.net.flow.TrafficSelector; |
| 31 | import org.onlab.onos.net.flow.TrafficTreatment; | 31 | import org.onlab.onos.net.flow.TrafficTreatment; |
| 32 | -import org.onlab.onos.net.intent.Intent; | 32 | +import org.onlab.onos.net.intent.PointToPointIntent; |
| 33 | -import org.onlab.onos.net.intent.IntentService; | ||
| 34 | -import org.onlab.onos.net.intent.PointToPointIntentWithBandwidthConstraint; | ||
| 35 | -import org.onlab.onos.net.resource.BandwidthResourceRequest; | ||
| 36 | import org.onlab.packet.Ethernet; | 33 | import org.onlab.packet.Ethernet; |
| 37 | -import org.onlab.rest.BaseResource; | ||
| 38 | - | ||
| 39 | import static org.onlab.onos.net.PortNumber.portNumber; | 34 | import static org.onlab.onos.net.PortNumber.portNumber; |
| 40 | import static org.onlab.onos.net.flow.DefaultTrafficTreatment.builder; | 35 | import static org.onlab.onos.net.flow.DefaultTrafficTreatment.builder; |
| 41 | 36 | ||
| 37 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 38 | +import org.slf4j.Logger; | ||
| 39 | + | ||
| 42 | /** | 40 | /** |
| 43 | * Web resource for triggering calendared intents. | 41 | * Web resource for triggering calendared intents. |
| 44 | */ | 42 | */ |
| 45 | -@Path("intent") | 43 | +@javax.ws.rs.Path("intent") |
| 46 | public class BandwidthCalendarResource extends BaseResource { | 44 | public class BandwidthCalendarResource extends BaseResource { |
| 47 | 45 | ||
| 46 | + private static final Logger log = getLogger(BandwidthCalendarResource.class); | ||
| 47 | + | ||
| 48 | + @javax.ws.rs.Path("/{src}/{dst}/{srcPort}/{dstPort}/{bandwidth}") | ||
| 48 | @POST | 49 | @POST |
| 49 | - @Path("{src}/{dst}/{srcPort}/{dstPort}/{bandwidth}") | ||
| 50 | public Response createIntent(@PathParam("src") String src, | 50 | public Response createIntent(@PathParam("src") String src, |
| 51 | @PathParam("dst") String dst, | 51 | @PathParam("dst") String dst, |
| 52 | @PathParam("srcPort") String srcPort, | 52 | @PathParam("srcPort") String srcPort, |
| 53 | @PathParam("dstPort") String dstPort, | 53 | @PathParam("dstPort") String dstPort, |
| 54 | @PathParam("bandwidth") String bandwidth) { | 54 | @PathParam("bandwidth") String bandwidth) { |
| 55 | - // TODO: implement calls to intent framework | 55 | + |
| 56 | + log.info("Receiving Create Intent request..."); | ||
| 57 | + log.info("Path Constraints: Src = {} SrcPort = {} Dest = {} DestPort = {} BW = {}", | ||
| 58 | + src, srcPort, dst, dstPort, bandwidth); | ||
| 59 | + | ||
| 56 | IntentService service = get(IntentService.class); | 60 | IntentService service = get(IntentService.class); |
| 57 | 61 | ||
| 58 | ConnectPoint srcPoint = new ConnectPoint(deviceId(src), portNumber(srcPort)); | 62 | ConnectPoint srcPoint = new ConnectPoint(deviceId(src), portNumber(srcPort)); |
| ... | @@ -61,13 +65,38 @@ public class BandwidthCalendarResource extends BaseResource { | ... | @@ -61,13 +65,38 @@ public class BandwidthCalendarResource extends BaseResource { |
| 61 | TrafficSelector selector = buildTrafficSelector(); | 65 | TrafficSelector selector = buildTrafficSelector(); |
| 62 | TrafficTreatment treatment = builder().build(); | 66 | TrafficTreatment treatment = builder().build(); |
| 63 | 67 | ||
| 64 | - Intent intent = new PointToPointIntentWithBandwidthConstraint( | 68 | + PointToPointIntent intentP2P = |
| 65 | - appId(), selector, treatment, | 69 | + new PointToPointIntent(appId(), selector, treatment, |
| 66 | - srcPoint, dstPoint, new BandwidthResourceRequest(Double.parseDouble(bandwidth))); | 70 | + srcPoint, dstPoint); |
| 67 | - service.submit(intent); | 71 | + service.submit(intentP2P); |
| 72 | + log.info("Submitted Calendar App intent: src = " + src + "dest = " + dst | ||
| 73 | + + "srcPort = " + srcPort + "destPort" + dstPort + "intentID = " + intentP2P.id().toString()); | ||
| 74 | + String reply = intentP2P.id().toString() + "\n"; | ||
| 68 | 75 | ||
| 69 | - return Response.ok("Yo! We got src=" + srcPoint + "; dst=" + dstPoint + | 76 | + return Response.ok(reply).build(); |
| 70 | - "; bw=" + bandwidth + "; intent service " + service).build(); | 77 | + } |
| 78 | + | ||
| 79 | + @javax.ws.rs.Path("/cancellation/{intentId}") | ||
| 80 | + @DELETE | ||
| 81 | + public Response withdrawIntent(@PathParam("intentId") String intentId) { | ||
| 82 | + | ||
| 83 | + log.info("Receiving Teardown request..."); | ||
| 84 | + log.info("Withdraw intentId = {} ", intentId); | ||
| 85 | + | ||
| 86 | + String reply = "ok\n"; | ||
| 87 | + return Response.ok(reply).build(); | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + @javax.ws.rs.Path("/modification/{intentId}/{bandwidth}") | ||
| 91 | + @POST | ||
| 92 | + public Response modifyBandwidth(@PathParam("intentId") String intentId, | ||
| 93 | + @PathParam("bandwidth") String bandwidth) { | ||
| 94 | + | ||
| 95 | + log.info("Receiving Modify request..."); | ||
| 96 | + log.info("Modify bw for intentId = {} with new bandwidth = {}", intentId, bandwidth); | ||
| 97 | + | ||
| 98 | + String reply = "ok\n"; | ||
| 99 | + return Response.ok(reply).build(); | ||
| 71 | } | 100 | } |
| 72 | 101 | ||
| 73 | private TrafficSelector buildTrafficSelector() { | 102 | private TrafficSelector buildTrafficSelector() { |
| ... | @@ -86,5 +115,4 @@ public class BandwidthCalendarResource extends BaseResource { | ... | @@ -86,5 +115,4 @@ public class BandwidthCalendarResource extends BaseResource { |
| 86 | protected ApplicationId appId() { | 115 | protected ApplicationId appId() { |
| 87 | return get(CoreService.class).registerApplication("org.onlab.onos.calendar"); | 116 | return get(CoreService.class).registerApplication("org.onlab.onos.calendar"); |
| 88 | } | 117 | } |
| 89 | - | ||
| 90 | } | 118 | } | ... | ... |
-
Please register or login to post a comment