Optimize the tunnel commands

1. Split port and equipment by "/" instead of "-";
2. Fix the bug of remove-tunnel-by-type command.

Change-Id: I462e8af54f697d04b8433a59126e1c52c4cbf88c
diff --git a/cli/src/main/java/org/onosproject/cli/net/TunnelCreateCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelCreateCommand.java
index 1bb8afe..098cd46 100644
--- a/cli/src/main/java/org/onosproject/cli/net/TunnelCreateCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelCreateCommand.java
@@ -90,8 +90,8 @@
             dstPoint = IpTunnelEndPoint.ipTunnelPoint(IpAddress.valueOf(dst));
         } else if ("VLAN".equals(type)) {
             trueType = Tunnel.Type.VLAN;
-            String[] srcArray = src.split("-");
-            String[] dstArray = dst.split("-");
+            String[] srcArray = src.split("/");
+            String[] dstArray = dst.split("/");
             srcPoint = new DefaultOpticalTunnelEndPoint(
                                                         producerName,
                                                         Optional.of(DeviceId
@@ -124,8 +124,8 @@
             dstPoint = IpTunnelEndPoint.ipTunnelPoint(IpAddress.valueOf(dst));
         } else if ("ODUK".equals(type)) {
             trueType = Tunnel.Type.ODUK;
-            String[] srcArray = src.split("-");
-            String[] dstArray = dst.split("-");
+            String[] srcArray = src.split("/");
+            String[] dstArray = dst.split("/");
             srcPoint = new DefaultOpticalTunnelEndPoint(
                                                         producerName,
                                                         Optional.of(DeviceId
@@ -150,8 +150,8 @@
                                                         true);
         } else if ("OCH".equals(type)) {
             trueType = Tunnel.Type.OCH;
-            String[] srcArray = src.split("-");
-            String[] dstArray = dst.split("-");
+            String[] srcArray = src.split("/");
+            String[] dstArray = dst.split("/");
             srcPoint = new DefaultOpticalTunnelEndPoint(
                                                         producerName,
                                                         Optional.of(DeviceId
diff --git a/cli/src/main/java/org/onosproject/cli/net/TunnelQueryCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelQueryCommand.java
index 6a4da17..c60337c 100644
--- a/cli/src/main/java/org/onosproject/cli/net/TunnelQueryCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelQueryCommand.java
@@ -87,8 +87,8 @@
                 dstPoint = IpTunnelEndPoint.ipTunnelPoint(IpAddress
                         .valueOf(dst));
             } else if ("VLAN".equals(type)) {
-                String[] srcArray = src.split("-");
-                String[] dstArray = dst.split("-");
+                String[] srcArray = src.split("/");
+                String[] dstArray = dst.split("/");
                 srcPoint = new DefaultOpticalTunnelEndPoint(
                                                             producerName,
                                                             Optional.of(DeviceId
@@ -112,8 +112,8 @@
                                                                     .logicId(0),
                                                             true);
             } else if ("ODUK".equals(type)) {
-                String[] srcArray = src.split("-");
-                String[] dstArray = dst.split("-");
+                String[] srcArray = src.split("/");
+                String[] dstArray = dst.split("/");
                 srcPoint = new DefaultOpticalTunnelEndPoint(
                                                             producerName,
                                                             Optional.of(DeviceId
@@ -137,8 +137,8 @@
                                                                     .logicId(0),
                                                             true);
             } else if ("OCH".equals(type)) {
-                String[] srcArray = src.split("-");
-                String[] dstArray = dst.split("-");
+                String[] srcArray = src.split("/");
+                String[] dstArray = dst.split("/");
                 srcPoint = new DefaultOpticalTunnelEndPoint(
                                                             producerName,
                                                             Optional.of(DeviceId
@@ -194,7 +194,7 @@
         }
         if (tunnelSet != null) {
             for (Tunnel tunnel : tunnelSet) {
-                print(FMT, tunnel.tunnelId(), tunnel.src().toString(), tunnel.dst().toString(),
+                print(FMT, tunnel.tunnelId().id(), tunnel.src().toString(), tunnel.dst().toString(),
                       tunnel.type(), tunnel.state(), tunnel.providerId(),
                       tunnel.tunnelName(), tunnel.groupId(),
                       showPath(tunnel.path()),
diff --git a/cli/src/main/java/org/onosproject/cli/net/TunnelRemoveCommand.java b/cli/src/main/java/org/onosproject/cli/net/TunnelRemoveCommand.java
index 0081fc5..7d42c2d 100644
--- a/cli/src/main/java/org/onosproject/cli/net/TunnelRemoveCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/TunnelRemoveCommand.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.cli.net;
 
+import java.util.Collection;
 import java.util.Optional;
 
 import org.apache.karaf.shell.commands.Command;
@@ -31,6 +32,7 @@
 import org.onosproject.incubator.net.tunnel.TunnelEndPoint;
 import org.onosproject.incubator.net.tunnel.TunnelId;
 import org.onosproject.incubator.net.tunnel.TunnelProvider;
+import org.onosproject.incubator.net.tunnel.TunnelService;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.provider.ProviderId;
@@ -95,8 +97,8 @@
                         .valueOf(dst));
             } else if ("ODUK".equals(type)) {
                 trueType = Tunnel.Type.ODUK;
-                String[] srcArray = src.split("-");
-                String[] dstArray = dst.split("-");
+                String[] srcArray = src.split("/");
+                String[] dstArray = dst.split("/");
                 srcPoint = new DefaultOpticalTunnelEndPoint(
                                                             producerName,
                                                             Optional.of(DeviceId
@@ -121,8 +123,8 @@
                                                             true);
             } else if ("OCH".equals(type)) {
                 trueType = Tunnel.Type.OCH;
-                String[] srcArray = src.split("-");
-                String[] dstArray = dst.split("-");
+                String[] srcArray = src.split("/");
+                String[] dstArray = dst.split("/");
                 srcPoint = new DefaultOpticalTunnelEndPoint(
                                                             producerName,
                                                             Optional.of(DeviceId
@@ -154,12 +156,44 @@
                                                   trueType, null, producerName,
                                                   null, null);
             service.tunnelRemoved(tunnel);
+            return;
         }
         if (!isNull(tunnelId)) {
             TunnelId id = TunnelId.valueOf(tunnelId);
             tunnel = new DefaultTunnelDescription(id, null, null, null, null,
                                                   producerName, null, null);
             service.tunnelRemoved(tunnel);
+            return;
+        }
+
+        if (!isNull(type)) {
+            Tunnel.Type trueType = null;
+            Collection<Tunnel> tunnelSet = null;
+            TunnelService tunnelService = get(TunnelService.class);
+            if ("MPLS".equals(type)) {
+                trueType = Tunnel.Type.MPLS;
+            } else if ("VLAN".equals(type)) {
+                trueType = Tunnel.Type.VLAN;
+            } else if ("VXLAN".equals(type)) {
+                trueType = Tunnel.Type.VXLAN;
+            } else if ("GRE".equals(type)) {
+                trueType = Tunnel.Type.GRE;
+            } else if ("ODUK".equals(type)) {
+                trueType = Tunnel.Type.ODUK;
+            } else if ("OCH".equals(type)) {
+                trueType = Tunnel.Type.OCH;
+            } else {
+                print("Illegal tunnel type. Please input MPLS, VLAN, VXLAN, GRE, ODUK or OCH.");
+                return;
+            }
+            tunnelSet = tunnelService.queryTunnel(trueType);
+            if (tunnelSet != null) {
+                for (Tunnel tunnelTemp : tunnelSet) {
+                    tunnel = new DefaultTunnelDescription(tunnelTemp.tunnelId(), null, null, null, null,
+                                                          producerName, null, null);
+                    service.tunnelRemoved(tunnel);
+                }
+            }
         }
     }