[ONOS-7752] check north-south reachability for troubleshoot purpose

Change-Id: I973047c0fcd4fb241ad010fbbef9d016510b8deb
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
index 3f204fb..645a86d 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
@@ -45,6 +45,7 @@
 import org.onosproject.openstacknetworking.api.InstancePortService;
 import org.onosproject.openstacknetworking.api.InstancePortStore;
 import org.onosproject.openstacknetworking.api.InstancePortStoreDelegate;
+import org.onosproject.openstacknetworking.api.OpenstackRouterService;
 import org.slf4j.Logger;
 
 import java.util.Objects;
@@ -101,6 +102,9 @@
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected HostService hostService;
 
+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    protected OpenstackRouterService routerService;
+
     private final InstancePortStoreDelegate
                             delegate = new InternalInstancePortStoreDelegate();
     private final InternalHostListener
@@ -224,6 +228,17 @@
         return ImmutableSet.copyOf(ports);
     }
 
+    @Override
+    public IpAddress floatingIp(String osPortId) {
+        checkNotNull(osPortId, ERR_NULL_INSTANCE_PORT_ID);
+
+        return routerService.floatingIps().stream()
+                .filter(fip -> osPortId.equals(fip.getPortId()))
+                .filter(fip -> fip.getFloatingIpAddress() != null)
+                .map(fip -> IpAddress.valueOf(fip.getFloatingIpAddress()))
+                .findFirst().orElse(null);
+    }
+
     private boolean isInstancePortInUse(String portId) {
         // TODO add checking logic
         return false;