Refactored OpenstackSwitching app

[DONE]
- Restructured to activate or deactivate switching and routing app separately
- Fixed to add or remove host when port is detected or vanished
- Use openstack node service to get integration bridges and data IP

[TODO]
- Remove use of OpenstackPortInfo
- Support installing flow rules for exising VMs
- Call security group update method when port update triggered from OpenStack

Change-Id: Ic0b2ac3f7ab07f0e20c97c6edfdd1928b9767baf
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java
index 6217bf3..b40b865 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java
@@ -19,14 +19,12 @@
 import org.onlab.packet.MacAddress;
 import org.onosproject.net.DeviceId;
 
-import java.util.Collection;
-import java.util.Collections;
-
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
  * Contains OpenstackPort Information.
  */
+// TODO remove this
 public final class OpenstackPortInfo {
     private final Ip4Address hostIp;
     private final MacAddress hostMac;
@@ -34,7 +32,6 @@
     private final long vni;
     private final Ip4Address gatewayIP;
     private final String networkId;
-    private final Collection<String> securityGroups;
 
     /**
      * Returns OpenstackPortInfo reference.
@@ -45,17 +42,15 @@
      * @param vni  tunnel ID
      * @param gatewayIP gateway IP address
      * @param networkId network identifier
-     * @param securityGroups security group list
      */
     public OpenstackPortInfo(Ip4Address hostIp, MacAddress hostMac, DeviceId deviceId, long vni,
-                             Ip4Address gatewayIP, String networkId, Collection<String> securityGroups) {
+                             Ip4Address gatewayIP, String networkId) {
         this.hostIp = hostIp;
         this.hostMac = hostMac;
         this.deviceId = deviceId;
         this.vni = vni;
         this.gatewayIP = gatewayIP;
         this.networkId = networkId;
-        this.securityGroups = securityGroups;
     }
 
     /**
@@ -113,15 +108,6 @@
     }
 
     /**
-     * Returns Security Group ID list.
-     *
-     * @return list of Security Group ID
-     */
-    public Collection<String> securityGroups() {
-        return Collections.unmodifiableCollection(securityGroups);
-    }
-
-    /**
      * Returns the builder of the OpenstackPortInfo.
      *
      * @return OpenstackPortInfo builder reference
@@ -140,7 +126,6 @@
         private DeviceId deviceId;
         private long vni;
         private Ip4Address gatewayIP;
-        private Collection<String> securityGroups;
         private String networkId;
 
         /**
@@ -210,23 +195,12 @@
         }
 
         /**
-         * Sets the security group ID list.
-         *
-         * @param securityGroups security group ID list
-         * @return Builder reference
-         */
-        public Builder setSecurityGroups(Collection<String> securityGroups) {
-            this.securityGroups = securityGroups;
-            return this;
-        }
-
-        /**
          * Builds the OpenstackPortInfo reference.
          *
          * @return OpenstackPortInfo reference
          */
         public OpenstackPortInfo build() {
-            return new OpenstackPortInfo(hostIp, hostMac, deviceId, vni, gatewayIP, networkId, securityGroups);
+            return new OpenstackPortInfo(hostIp, hostMac, deviceId, vni, gatewayIP, networkId);
         }
     }
 }