Fix odlparent 3 Checkstyle issues
[groupbasedpolicy.git] / neutron-mapper / src / main / java / org / opendaylight / groupbasedpolicy / neutron / mapper / util / PortUtils.java
index debe75422e14f2062beced50167483f88c5c1296..86a3e771337583daf996d147a8a82d748f6ec316 100644 (file)
@@ -8,26 +8,28 @@
 
 package org.opendaylight.groupbasedpolicy.neutron.mapper.util;
 
+import com.google.common.base.Optional;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import javax.annotation.Nullable;
-
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.NetworkDomainId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtension;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.port.attributes.FixedIps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.Ports;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;
 
-import com.google.common.base.Optional;
-
-public class PortUtils {
+public final class PortUtils {
+    private PortUtils() {
+    }
 
     public static final String DEVICE_OWNER_DHCP = "network:dhcp";
     public static final String DEVICE_OWNER_ROUTER_IFACE = "network:router_interface";
     public static final String DEVICE_OWNER_ROUTER_GATEWAY = "network:router_gateway";
     public static final String DEVICE_OWNER_FLOATING_IP = "network:floatingip";
+    public static final String DEVICE_VIF_TYPE = "vhostuser";
 
     public static Optional<Port> findPort(Uuid uuid, @Nullable Ports ports) {
         if (ports == null || ports.getPort() == null) {
@@ -80,6 +82,15 @@ public class PortUtils {
         return Optional.absent();
     }
 
+    public static Optional<NetworkDomainId> resolveNetworkContainment(Port port) {
+        Optional<FixedIps> firstFixedIps = PortUtils.resolveFirstFixedIps(port);
+        if (firstFixedIps.isPresent() && firstFixedIps.get().getSubnetId() != null) {
+            FixedIps ipWithSubnet = firstFixedIps.get();
+            return Optional.of(new NetworkDomainId(ipWithSubnet.getSubnetId().getValue()));
+        }
+        return Optional.absent();
+    }
+
     public static boolean isNormalPort(Port port) {
         if (isDhcpPort(port) || isRouterInterfacePort(port) || isRouterGatewayPort(port) || isFloatingIpPort(port)) {
             return false;
@@ -91,6 +102,11 @@ public class PortUtils {
         return DEVICE_OWNER_DHCP.equals(port.getDeviceOwner());
     }
 
+    public static boolean isQrouterOrVppRouterPort(Port port) {
+        return DEVICE_OWNER_ROUTER_IFACE.equals(port.getDeviceOwner())
+            && port.getAugmentation(PortBindingExtension.class) != null;
+    }
+
     public static boolean isRouterInterfacePort(Port port) {
         return DEVICE_OWNER_ROUTER_IFACE.equals(port.getDeviceOwner());
     }