Comment 0 for bug 1566090

Revision history for this message
Carlos L. Torres (carlos-torres) wrote :

Previously using python-openstackclient I could retrieve with a single command to which network, or pool, a floating IP belonged to.

For example, here is an example output from version 1.0.4:

  # openstack --version && openstack ip floating list
  openstack 1.0.4
  +--------------------------------------+--------+--------------+--------------+--------------------------------------+
  | ID | Pool | IP | Fixed IP | Instance ID |
  +--------------------------------------+--------+--------------+--------------+--------------------------------------+
  | 07bdb6ca-0368-482c-8e29-ceca43041502 | public | 10.50.48.91 | 172.16.1.41 | 331e86ab-6caf-45b2-bcd0-e29f105a32b5 |
  | 0b1bce87-71fb-45ad-b8ef-5fec6827bd80 | public | 10.50.48.102 | 172.16.1.50 | 77460666-2cd9-4df7-9e9e-c40289664de7 |
  | 124dd71f-0e84-43a7-a355-130226ea2f7f | public | 10.50.48.240 | 172.16.1.201 | d0342efe-174d-482f-b099-29441844f581 |
  | 1f2d97a0-b4e3-4b63-b6cd-86ca4512364f | public | 10.50.48.239 | 172.16.1.202 | 51d87aff-adb5-4b77-9c8f-85ba94fe59c9 |
  | 5babfd67-7965-4210-acf6-498c9e33fc07 | public | 10.50.48.105 | 172.16.1.49 | 438fe1a5-4714-460f-848e-b02189620145 |
  | 94bb22ff-f900-4b27-ae37-53a66dc15ee6 | public | 10.50.48.103 | 172.16.1.48 | 56dcb4b6-50f9-4720-a01f-288eda829ae2 |
  | 993ccd2b-4bc2-40a2-9029-972c2d2a12e3 | public | 10.50.48.130 | None | None |
  | a8681eb8-3828-45b7-a7ce-4dc7fcef6089 | public | 10.50.48.242 | None | None |
  | ab3e9005-6246-4e1e-8412-1a7a0d17f22b | public | 10.50.48.241 | None | None |
  | b6794d3f-caa9-48cc-ac66-af6baf285b32 | public | 10.50.48.104 | 172.16.1.51 | c599fb79-b97a-431c-acc6-8088ed37b2d7 |
  | e4803d10-84ce-4841-a275-a47af589152a | public | 10.50.48.106 | 172.16.1.47 | 4ce696dd-1044-4872-af3d-c06774fd3388 |
  +--------------------------------------+--------+--------------+--------------+--------------------------------------+

On recent versions, the 'Pool' column now is missing, as well as the instance ID but that's for another day. Here's the output from version 2.3.0:

  # openstack --version && openstack ip floating list
  openstack 2.3.0
  +--------------------------------------+---------------------+------------------+--------------------------------------+
  | ID | Floating IP Address | Fixed IP Address | Port |
  +--------------------------------------+---------------------+------------------+--------------------------------------+
  | 07bdb6ca-0368-482c-8e29-ceca43041502 | 10.50.48.91 | 172.16.1.41 | 58f42707-bc54-406b-87d8-f93e54ae5df5 |
  | 0b1bce87-71fb-45ad-b8ef-5fec6827bd80 | 10.50.48.102 | 172.16.1.50 | f495cd9b-99c9-4408-bac1-8a32c52e5493 |
  | 124dd71f-0e84-43a7-a355-130226ea2f7f | 10.50.48.240 | 172.16.1.201 | b2142fa5-e2ec-444c-801a-fd05d00f1345 |
  | 1f2d97a0-b4e3-4b63-b6cd-86ca4512364f | 10.50.48.239 | 172.16.1.202 | 9e06fe8e-e4f0-4d90-8a77-66d0710b745c |
  | 5babfd67-7965-4210-acf6-498c9e33fc07 | 10.50.48.105 | 172.16.1.49 | a5ef5c63-fc7d-4b3b-9a57-5cca63cd0fb1 |
  | 94bb22ff-f900-4b27-ae37-53a66dc15ee6 | 10.50.48.103 | 172.16.1.48 | 8ebffa77-aff7-4e64-af51-c8df6cdc8911 |
  | 993ccd2b-4bc2-40a2-9029-972c2d2a12e3 | 10.50.48.130 | None | None |
  | a8681eb8-3828-45b7-a7ce-4dc7fcef6089 | 10.50.48.242 | None | None |
  | ab3e9005-6246-4e1e-8412-1a7a0d17f22b | 10.50.48.241 | None | None |
  | b6794d3f-caa9-48cc-ac66-af6baf285b32 | 10.50.48.104 | 172.16.1.51 | 780bf5ba-c79c-4360-a2ef-f1dfd5f4af66 |
  | e4803d10-84ce-4841-a275-a47af589152a | 10.50.48.106 | 172.16.1.47 | 98151fda-2b80-4194-9d8f-4b5a2e223040 |
  +--------------------------------------+---------------------+------------------+--------------------------------------+

The problem is that now it takes multiple commands to determine to what network, or pool, a floating ip belongs to.

Previously, all it took was one command:

1) openstack ip floating list

But today, to determine if an available floating IP address belongs to network I would need to do the following:

1) List all networks and grab the ID of the network I'm interested: openstack network list
2) List all floating IPs to determine which are not allocated: openstack ip floating list
3) For each floating ip, get its details to determine its network: for ip in floating_ip: openstack ip floating show ip
4) If the 'floating_network_id' property matches the network from Step 1 then it belongs to that network.

It seems this change introduced the change to use Neutron floatingips extension:

https://review.openstack.org/#/c/280535/

Perhaps it could be extended to also fetch this other information.