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