Add delete rest operation for intents
Change-Id: I0197169c018318a2661e3fb418863df563a25f0a
diff --git a/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java b/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
index 7015d44..0e8300a 100755
--- a/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
+++ b/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
@@ -23,6 +23,7 @@
router.attach("/get/ng-events/json", GetNGEventsResource.class);
router.attach("/get/intents/{category}/json", IntentResource.class);
router.attach("/get/intent/{category}/{intent_id}/json", IntentResource.class);
+ router.attach("/delete/intents/json", IntentResource.class);
return router;
}
diff --git a/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java b/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
index 48e5e15..c625f3f 100755
--- a/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
+++ b/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
@@ -27,6 +27,7 @@
import java.util.Map;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.ObjectNode;
+import org.restlet.resource.Delete;
import org.restlet.resource.Get;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,12 +71,6 @@
@Post("json")
public String store(String jsonIntent) throws IOException {
- IDatagridService datagridService = (IDatagridService) getContext()
- .getAttributes().get(IDatagridService.class.getCanonicalName());
- if (datagridService == null) {
- log.debug("FlowIntentResource ONOS Datagrid Service not found");
- return "";
- }
IPathCalcRuntimeService pathRuntime = (IPathCalcRuntimeService)getContext()
.getAttributes().get(IPathCalcRuntimeService.class.getCanonicalName());
if (pathRuntime == null) {
@@ -100,6 +95,16 @@
}
return reply;
}
+
+ @Delete("json")
+ public String store() {
+ IPathCalcRuntimeService pathRuntime = (IPathCalcRuntimeService)getContext().
+ getAttributes().get(IPathCalcRuntimeService.class.getCanonicalName());
+ pathRuntime.purgeIntents();
+ // TODO no reply yet from the purge intents call
+ return "";
+
+ }
@Get("json")
public String retrieve() throws IOException {
diff --git a/web/rest-intent/add-get-intent.rb b/web/rest-intent/add-get-intent.rb
index c62a7b6..e73b8e5 100644
--- a/web/rest-intent/add-get-intent.rb
+++ b/web/rest-intent/add-get-intent.rb
@@ -25,6 +25,12 @@
options[:get_intent] = intent_id
end
+ opts.separator ""
+ opts.separator "Delete options"
+ opts.on('-d', '--purge', 'purge all intents') do
+ options[:rest_op] = "delete"
+ end
+
opts.separator ""
opts.separator "Post options:"
@@ -96,6 +102,11 @@
puts request
end
+ def purge_intents
+ response = RestClient.delete "http://#{@server}:#{@port}/wm/onos/datagrid/delete/intents/json"
+ puts response
+ end
+
private
def create_specific_intent
@@ -202,6 +213,8 @@
intent = Intent.new options
if options[:rest_op] == "get"
intent.get_intent options
+elsif options[:rest_op] == "delete"
+ intent.purge_intents
else
json_data = intent.post_intent
end