Add ability to manage floating IPs in syspanel

Registered by Tres Henry

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

Status:
Complete
Approver:
Gabriel Hurley
Priority:
Low
Drafter:
Gabriel Hurley
Direction:
Approved
Assignee:
George Peristerakis
Definition:
Approved
Series goal:
Accepted for 10.0.0-newton
Implementation:
Implemented
Milestone target:
milestone icon newton-3
Started by
Gabriel Hurley
Completed by
Rob Cresswell

Related branches

Sprints

Whiteboard

[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 192.168.1.10-192.168.1.20 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 https://blueprints.launchpad.net/neutron/+spec/make-allocation-pool-updatable

::::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 https://blueprints.launchpad.net/neutron/+spec/how-many-floating-ip-available

[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 https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address is implemented the admin user will have ability to allocate a specific floating Ip to a specify tenant. And there is a reduplicate bp https://blueprints.launchpad.net/horizon/+spec/syspanel-floating-ip-list. @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: https://review.openstack.org/#q,topic:bp/manage-ips,n,z

Addressed by: https://review.openstack.org/143628
    Add floating IP panel to admin dashboard

[LIU Yulong Jan-23-2015] This bp https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address is implemented.

(?)

Work Items

Work items:
Push for API capabilities (https://blueprints.launchpad.net/neutron/+spec/how-many-floating-ip-available): 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 https://blueprints.launchpad.net/neutron/+spec/make-allocation-pool-updatable) : TODO

This blueprint contains Public information 
Everyone can see this information.