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);
+ }
+ }
}
}