Purge instance port when removing osPort which is not bound to fip

Change-Id: I3b4edb9cd447889727c2ea1c3da155a1e97f3f79
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;