Add group table, flow rules by listening to openstack node events

Change-Id: Ifbb1ae9c812e9bc24260e960c17b5430dcf59a11
diff --git a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapOutputCommand.java b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapOutputCommand.java
index 293b62e..257cb9a 100644
--- a/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapOutputCommand.java
+++ b/apps/openstackvtap/app/src/main/java/org/onosproject/openstackvtap/cli/OpenstackVtapOutputCommand.java
@@ -27,6 +27,7 @@
 import org.onosproject.openstackvtap.api.OpenstackVtapAdminService;
 
 import static org.onlab.packet.VlanId.UNTAGGED;
+import static org.onosproject.openstackvtap.util.OpenstackVtapUtil.getVtapTypeFromString;
 
 /**
  * Command line interface for set openstack vTap output.
@@ -36,7 +37,8 @@
 public class OpenstackVtapOutputCommand extends AbstractShellCommand {
 
     private final DeviceService deviceService = get(DeviceService.class);
-    private final OpenstackVtapAdminService vTapAdminService = get(OpenstackVtapAdminService.class);
+    private final OpenstackVtapAdminService vTapAdminService =
+                                            get(OpenstackVtapAdminService.class);
 
     @Argument(index = 0, name = "deviceId", description = "device id",
             required = true, multiValued = false)
@@ -52,18 +54,14 @@
 
     @Argument(index = 3, name = "type", description = "vTap type [all|tx|rx]",
             required = false, multiValued = false)
-    String vTapType = "all";
+    String vTapTypeStr = "all";
 
     @Override
     protected void execute() {
         try {
             Device device = deviceService.getDevice(DeviceId.deviceId(id));
             if (device != null) {
-                OpenstackVtap.Type type = getVtapType(vTapType);
-                if (type == null) {
-                    print("Invalid vTap type");
-                    return;
-                }
+                OpenstackVtap.Type type = getVtapTypeFromString(vTapTypeStr);
 
                 vTapAdminService.setVtapOutput(device.id(), type,
                         PortNumber.portNumber(port), VlanId.vlanId((short) vlan));
@@ -78,17 +76,4 @@
             print("Invalid parameter: %s", e.toString());
         }
     }
-
-    private static OpenstackVtap.Type getVtapType(String str) {
-        switch (str) {
-            case "all":
-                return OpenstackVtap.Type.VTAP_ALL;
-            case "tx":
-                return OpenstackVtap.Type.VTAP_TX;
-            case "rx":
-                return OpenstackVtap.Type.VTAP_RX;
-            default:
-                return OpenstackVtap.Type.VTAP_NONE;
-        }
-    }
 }