Fix: resolve a set of NPEs and WARNs caused by null instance port
Change-Id: I62b1c21cb9fac7d38924e85838a435737664f6c0
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
index 6c3ef24..8a59d36 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
@@ -569,23 +569,31 @@
case OPENSTACK_FLOATING_IP_ASSOCIATED:
eventExecutor.execute(() -> {
NetFloatingIP osFip = event.floatingIp();
- associateFloatingIp(osFip);
- log.info("Associated floating IP {}:{}",
- osFip.getFloatingIpAddress(), osFip.getFixedIpAddress());
+ if (instancePortService.instancePort(osFip.getPortId()) != null) {
+ associateFloatingIp(osFip);
+ log.info("Associated floating IP {}:{}",
+ osFip.getFloatingIpAddress(),
+ osFip.getFixedIpAddress());
+ }
});
break;
case OPENSTACK_FLOATING_IP_DISASSOCIATED:
eventExecutor.execute(() -> {
NetFloatingIP osFip = event.floatingIp();
- disassociateFloatingIp(osFip, event.portId());
- log.info("Disassociated floating IP {}:{}",
- osFip.getFloatingIpAddress(), osFip.getFixedIpAddress());
+ if (instancePortService.instancePort(event.portId()) != null) {
+ disassociateFloatingIp(osFip, event.portId());
+ log.info("Disassociated floating IP {}:{}",
+ osFip.getFloatingIpAddress(),
+ osFip.getFixedIpAddress());
+ }
});
break;
case OPENSTACK_FLOATING_IP_CREATED:
eventExecutor.execute(() -> {
NetFloatingIP osFip = event.floatingIp();
- if (!Strings.isNullOrEmpty(osFip.getPortId())) {
+ String portId = osFip.getPortId();
+ if (!Strings.isNullOrEmpty(portId) &&
+ instancePortService.instancePort(portId) != null) {
associateFloatingIp(event.floatingIp());
}
log.info("Created floating IP {}", osFip.getFloatingIpAddress());
@@ -594,11 +602,13 @@
case OPENSTACK_FLOATING_IP_REMOVED:
eventExecutor.execute(() -> {
NetFloatingIP osFip = event.floatingIp();
+ String portId = osFip.getPortId();
if (!Strings.isNullOrEmpty(osFip.getPortId())) {
// in case the floating IP is not associated with any port due to
// port removal, we simply do not execute floating IP disassociation
- if (osNetworkService.port(osFip.getPortId()) != null) {
- disassociateFloatingIp(osFip, osFip.getPortId());
+ if (osNetworkService.port(portId) != null &&
+ instancePortService.instancePort(portId) != null) {
+ disassociateFloatingIp(osFip, portId);
}
// since we skip floating IP disassociation, we need to