In admin/instances, and project/instances, as well as the instance details page, IP addresses are retrieved via Nova. However, floating IPs are configured via Neutron (When Neutron is enabled*). Nova has a mechanism where it polls Neutron for networking information, but it's far from real-time.
The effect is that when a floating IP is associated or disassociated, it isn't reflected in the GUI for up to a minute for a single operation, or several minutes for consecutive floating IP operations.
There's several approaches to fix this bug:
1) Improve Nova's polling mechanism. It can be faster, but it will never be real time because of its polling nature, and it will never have the desired user experience because of it.
2) Make Neutron send out events when networking changes are made. Nova will listen to these events and update its DB. But do we really want to continue relying on Nova's cached networking information? It seems like a recipe for bugs.
3) My proposed solution: Since Horizon calls out to Neutron directly to configure floating IPs, it should get networking info from Neutron as well.
* This bug only happens with Neutron enabled. With Nova Networking, Nova takes care to update its own DB when performing floating IP associations/disassociations as expected.
Fix proposed to branch: master /review. openstack. org/64448
Review: https:/