Add ability to manage floating IPs in syspanel

Registered by Tres Henry on 2012-03-08

System administrators should be able to define the floating IPs available.
The initial functionalities are:
- Create a floating ip from a existing network. (individual or subnet)
- Delete a floating ip (detaching from network)
- Associate / Disassociate a floating ip

The table should display all the available floating ips grouped by tenant
The details are:
- The floating ip address
- The fixed ip address
- The name of fixed ip device
- link to the network the floating ip is associated to

Blueprint information

Gabriel Hurley
Gabriel Hurley
George Peristerakis
Series goal:
Accepted for 10.0.0-newton
Milestone target:
milestone icon newton-3
Started by
Gabriel Hurley on 2013-07-30
Completed by
Rob Cresswell on 2016-08-23

Related branches



[2014-01-03 | Marcos] I'd like to see some floating IP management interface, it's an essential feature for a cloud platform, and there is no Admin section in Horizon to manage that. The current option of setting up Allocation Pools in a subnet detail is not very useful. We cannot see what instances have what IP's, nor see the allocation pools defined via CLI (neutron subnet-create .... --allocation-pool)

::::New Admin Section::::
1) Display currently allocated floatingips (mimic #neutron floatingip-list)
2) Match every floating ip with their tenant and instance (foreach floatingip, get details and show some info as found in #neutron port-show)
The goal here is have a unified view of all the floating-ip's allocated. Maybe should include all subnets marked as 'external'

::::Improve current Admin Section: Network Detail > Edit Subnet::::
1) Show the same form "Allocation pools" that was showed when creating the subnet. See screenshot to compare the Create subnet form with the Edit subnet form.
2) Allow Neutron modification of a floatingip range (#neutron subnet-update) and try to apply the change. If it works, good, if not (i.e. reducing the range when the IPs are chosen), then report an error to the user
2.a) It might need Neutron discussion and see if this feature is safe. Changing an allocation pool at anytime will affect current instances that have the IPs taken. Increase the pool might seem safe, but it makes more sense to just add a second range, i.e. if I get 10 more IPs, instead of changing to (.10 - .30) I should create a second range from (.21 to .30) and keep the original (.10 to .20)
UPDATE: found this related blueprint

::::User Section::::
1) When allocating, know how many floating IPs are available. Currently, we just show an error ("Error: Unable to allocate Floating IP. "), horizon always allows the subnet to be chosen even if no more IPs ar available.
1.a) It might need API extension (to be proposed elsewhere), currently nowhere (nova or neutron) the available IPs are counted. Horizon cannot know if there are IPs available
UPDATE: found this related blueprint

[david-lyle 2014.07.14] Moving milestone to j-3

[david-lyle 2014.08.26] Moving milestone to Kilo

[LIU Yulong Dec-11-2014], Hi all, I have implemented a floating_ip panel based on neutron for admin user including admin allocating floating IP for specific tenant, admin releasing floating IP, admin editing floating IP association(change port), and floating ip list table to show all allocated ip.
Once this bp is implemented the admin user will have ability to allocate a specific floating Ip to a specify tenant. And there is a reduplicate bp @Gabriel Hurley Are you still writing this bp code? Or I submit my?

[peristeri Dec-12-2014] @LIU Yulong there's no code yet written. If you have any Horizon code, you can go ahead and commit it.

Gerrit topic:,topic:bp/manage-ips,n,z

Addressed by:
    Add floating IP panel to admin dashboard

[LIU Yulong Jan-23-2015] This bp is implemented.


Work Items

Work items:
Push for API capabilities ( TODO
(EditSubnetImprovement) Task 1) Show 'allocation pools', even if is read-only, when editing: TODO
(EditSubnetImprovement) Task 2) Allow modification of 'allocation pools' (needs Neutron API support, check : TODO

This blueprint contains Public information 
Everyone can see this information.