Integration of SR Tunnel REST calls with APIs
diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
index 57e42c7..7bcdfa6 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/web/SegmentRouterTunnelResource.java
@@ -1,5 +1,13 @@
 package net.onrc.onos.apps.segmentrouting.web;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.onrc.onos.apps.segmentrouting.ISegmentRoutingService;
+import net.onrc.onos.core.util.Dpid;
+
+import org.codehaus.jackson.map.ObjectMapper;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.restlet.resource.Post;
@@ -17,9 +25,28 @@
 
     @Post("json")
     public String createTunnel(String tunnelParams) {
-        String reply = "success";
-        log.debug("createTunnel with params {}", tunnelParams);
-        return reply;
+        ISegmentRoutingService segmentRoutingService =
+                (ISegmentRoutingService) getContext().getAttributes().
+                        get(ISegmentRoutingService.class.getCanonicalName());
+        ObjectMapper mapper = new ObjectMapper();
+        TunnelCreateParams createParams = null;
+        try {
+            if (tunnelParams != null) {
+                createParams = mapper.readValue(tunnelParams, TunnelCreateParams.class);
+            }
+        } catch (IOException ex) {
+            log.error("Exception occurred parsing inbound JSON", ex);
+            return "fail";
+        }
+        log.debug("createTunnel with tunnelId {} tunnelPath{}",
+                createParams.getTunnel_id(), createParams.getTunnel_path());
+        List<Dpid> tunnelDpids = new ArrayList<Dpid>();
+        for (String dpid : createParams.getTunnel_path()) {
+            tunnelDpids.add(new Dpid(dpid));
+        }
+        boolean result = segmentRoutingService.createTunnel(createParams.getTunnel_id(),
+                tunnelDpids);
+        return (result == true) ? "success" : "fail";
     }
 
     @Delete("json")