← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1607746] Fix merged to neutron (master)

 

Reviewed:  https://review.openstack.org/369846
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=3aa89f4d818ab6705c56287b58a268e9fd5113c8
Submitter: Jenkins
Branch:    master

commit 3aa89f4d818ab6705c56287b58a268e9fd5113c8
Author: LIU Yulong <liuyulong@xxxxxx>
Date:   Wed Sep 14 13:33:19 2016 +0800

    Refactor for floating IP updating checks
    
    1. Will not fill the API fip updating dict with tenant_id and id
    anymore, floatingip_db will be passed around functions.
    We need to make the `fip` dict come from the API as it orginal is.
    
    2. Refactor some redundant log messages for fip's port tenant_id
    check and IP version check.
    
    Change-Id: Ic45c95d90f3aecfcb731453fb3fd62e6ed92893b
    Partial-bug: #1607746


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1607746

Title:
  Update floating IP extra attributes will unexpectedly disassociate it

Status in neutron:
  Fix Released

Bug description:
  Update floating IP extra attributes will unexpectedly disassociate it.

  Now floating IP can be disassociated via two different API data dict:
  {'port_id': null} or a dict without `port_id` key.

  And, floating IP can not be updated with its original port_id, you may get some bad request
  exception.

  Which will cause some know issues:
  1. Updating floating IP extra attributes, for instance description,
  will unexpectedly disassociate it. This behavior will interrupt the
  user's service traffic. And this is because that user can submit an
  empty request dict (without port_id parameter) for the floating IP
  updating API, and then it will be disassociated by default.
  2. If user try to update floating IP extra attribute with port_id
  that it associated with, the neutron API will return a bad request
  exception.
  So there is no way to update the floating IP extra attributes without
  changing it's association.

  And there is already a bug for the updating floating IP extra attributes issue:
  https://bugs.launchpad.net/neutron/+bug/1578523

  This bug will be used to handle the API behavior issues.

  -----
  (moved from bug 1578523)

  2. Update floating IP extra attributes will unexpectedly disassociate it
  step 1: Associate
  neutron --debug floatingip-associate cd3b0496-bd2e-48a8-8706-48d4c4d85c44 303af774-b12f-462e-a38a-1c616b6cc335

  step 2: Update floating IP description
  curl -g -i -X PUT http://controller:9696/v2.0/floatingips/cd3b0496-bd2e-48a8-8706-48d4c4d85c44.json -H \
  "User-Agent: python-neutronclient" -H "Content-Type: application/json" -H "Accept: application/json" \
  -H "X-Auth-Token: 531460c39c1744d1b5b83b6f20fc74a2" -d '{"floatingip": {"description": "303af774-b12f-462e-a38a-1c616b6cc335"}}'

  HTTP/1.1 200 OK
  Content-Type: application/json; charset=UTF-8
  Content-Length: 416
  X-Openstack-Request-Id: req-6c3bbbc6-9218-41d2-9a95-32bf44e0d145
  Date: Thu, 05 May 2016 06:27:07 GMT

  {"floatingip": {"router_id": null, "status": "ACTIVE", "description":
  "303af774-b12f-462e-a38a-1c616b6cc335", "dns_domain": "",
  "floating_network_id": "2cad629d-e523-4b83-90b9-c0cc0ba1250d",
  "fixed_ip_address": null, "floating_ip_address": "172.16.5.145",
  "port_id": null, "id": "cd3b0496-bd2e-48a8-8706-48d4c4d85c44",
  "tenant_id": "5ff1da9c235c4ebcaefeecf3fff7eb11", "dns_name": ""}}

  Port_id is None, it means that the floating IP is disassociated from
  the port 303af774-b12f-462e-a38a-1c616b6cc335. This is totally
  incorrect.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1607746/+subscriptions


References