commit | a324e2e6e5289c8e42f5524a0814524d63521edf | [log] [tgz] |
---|---|---|
author | Jian Li <pyguni@gmail.com> | Tue Aug 28 17:35:16 2018 +0900 |
committer | Jian Li <pyguni@gmail.com> | Tue Aug 28 14:50:53 2018 +0000 |
tree | 2782b162e53793492d7ea6e99ab291279ed5c2c4 | |
parent | c807c1c02d8b5ce29b9dfc4b7ea11220cdae9a60 [diff] |
Purge instance port when removing osPort which is not bound to fip Change-Id: I3b4edb9cd447889727c2ea1c3da155a1e97f3f79 (cherry picked from commit 427811e42b2405571b9b3f658334b4e4338d1838)
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 26be07e..95cdd93 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
@@ -937,9 +937,17 @@ public void event(OpenstackNetworkEvent event) { switch (event.type()) { case OPENSTACK_PORT_PRE_REMOVE: - eventExecutor.execute(() -> - updateFipStore(instancePortService.instancePort(event.port().getId())) - ); + InstancePort instPort = + instancePortService.instancePort(event.port().getId()); + NetFloatingIP fip = + associatedFloatingIp(instPort, osRouterAdminService.floatingIps()); + + if (fip != null) { + eventExecutor.execute(() -> + updateFipStore(instancePortService.instancePort(event.port().getId()))); + } else { + instancePortService.removeInstancePort(instPort.portId()); + } break; default: break;