Add REST API for openstackvtap app
Change-Id: I5d7697069d804eeb88eb57cbd845af90764c7a86
diff --git a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java
index 013ac89..7fdd08e 100644
--- a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java
+++ b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapAddCommand.java
@@ -19,15 +19,13 @@
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.onlab.packet.IpPrefix;
-import org.onlab.packet.TpPort;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.openstackvtap.api.OpenstackVtap;
import org.onosproject.openstackvtap.api.OpenstackVtapAdminService;
-import org.onosproject.openstackvtap.impl.DefaultOpenstackVtapCriterion;
+import org.onosproject.openstackvtap.api.OpenstackVtapCriterion;
-import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getProtocolTypeFromString;
import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getVtapTypeFromString;
+import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.makeVtapCriterion;
/**
* Adds a openstack vtap rule.
@@ -76,38 +74,19 @@
@Override
protected void doExecute() {
- DefaultOpenstackVtapCriterion.Builder vtapCriterionBuilder = DefaultOpenstackVtapCriterion.builder();
- if (makeCriterion(vtapCriterionBuilder)) {
- OpenstackVtap.Type type = getVtapTypeFromString(vtapTypeStr);
-
- if (type == null) {
- print("Invalid vtap type");
- return;
- }
-
- OpenstackVtap vtap = vtapService.createVtap(type, vtapCriterionBuilder.build());
- if (vtap != null) {
- print("Created OpenstackVtap with id { %s }", vtap.id().toString());
- } else {
- print("Failed to create OpenstackVtap");
- }
- }
- }
-
- private boolean makeCriterion(DefaultOpenstackVtapCriterion.Builder vtapCriterionBuilder) {
- try {
- vtapCriterionBuilder.srcIpPrefix(IpPrefix.valueOf(srcIp));
- vtapCriterionBuilder.dstIpPrefix(IpPrefix.valueOf(dstIp));
- } catch (Exception e) {
- print("Inputted valid source IP & destination IP in CIDR (e.g., \"10.1.0.4/32\")");
- return false;
+ OpenstackVtapCriterion criterion =
+ makeVtapCriterion(srcIp, dstIp, ipProto, srcTpPort, dstTpPort);
+ OpenstackVtap.Type type = getVtapTypeFromString(vtapTypeStr);
+ if (type == null) {
+ print("Invalid vtap type");
+ return;
}
- vtapCriterionBuilder.ipProtocol(getProtocolTypeFromString(ipProto.toLowerCase()));
-
- vtapCriterionBuilder.srcTpPort(TpPort.tpPort(srcTpPort));
- vtapCriterionBuilder.dstTpPort(TpPort.tpPort(dstTpPort));
-
- return true;
+ OpenstackVtap vtap = vtapService.createVtap(type, criterion);
+ if (vtap != null) {
+ print("Created OpenstackVtap with id { %s }", vtap.id().toString());
+ } else {
+ print("Failed to create OpenstackVtap");
+ }
}
}