The remove method in the handle_delete method for NovaFloatingIpAssociation will never actually remove the floating IP association from the server. This is because Heat sends Nova the floating IP id while nova expects the actual IP address for the removal instead. Trying to delete the association will lead to unexpected results.
With a MySQL back-end, Nova will think the floating IP was not found since it incorrectly tries to query for a floating ip using the id as the address. Heat will ignore the NotFound exception, and mark the FloatingIpAssociation resource as successfully deleted.
However, with a PostgreSQL back-end, this will lead to Nova raising a DataError exception because PostgreSQL will return the following error: "invalid input type for type inet". An id number isn't valid for the PostgreSQL inet type which the address field uses. With this raised DataError exception, Heat marks the deletion of the FloatingIpAssociation resource as DELETE_FAILED.
This improper association removal can lead to problems when performing a stack-update, for instance, and you try to remove the FloatingIpAssociation resource.
Fix proposed to branch: master /review. openstack. org/84021
Review: https:/