[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;