Bug 8599 - updating metadata endpoints
[groupbasedpolicy.git] / neutron-mapper / src / main / java / org / opendaylight / groupbasedpolicy / neutron / mapper / util / PortUtils.java
index 2e225876771f98de757c5a47ff9b2b75a4da8277..621f3b15daf65eaa5b0464deee5a38336ec23a7c 100644 (file)
@@ -16,6 +16,7 @@ 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;
@@ -82,6 +83,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;