]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
allow delete_port to work when there are multiple floating ips
authorLars Kellogg-Stedman <lars@redhat.com>
Fri, 4 Apr 2014 17:35:32 +0000 (13:35 -0400)
committerLars Kellogg-Stedman <lars@redhat.com>
Fri, 18 Apr 2014 21:20:55 +0000 (17:20 -0400)
commitbad87ce76ad27f2a4b3c72e26e2eccc2c9564b85
tree73815feac8c31d5d4f0ea0eaf3508aa810a7375c
parent7305ace9f37719f47d55743c0dece7089c063b12
allow delete_port to work when there are multiple floating ips

It is possible to associate multiple floating ip addresses with a single
port through the use of multiple *fixed* ip addresses, e.g.:

    nova boot ... --nic net-id=my-net-id myserver
    nova add-fixed-ip myserver my-net-id
    nova add-floating-ip --fixed-address x.x.x.1 myserver y.y.y.y.1
    nova add-floating-ip --fixed-address x.x.x.2 myserver y.y.y.y.2

In this situation, neutron.db.l3_db.disassociate_floatingips would throw
an exception:

    Exception: Multiple floating IPs found for port <port-id>

This would prevent someone from deleting an instance that was associated
with multiple floating ips.

This patch corrects disassociate_floatingips so that it will
disassociate all floating ips associated with the port, allowing the
delete operation to proceed correctly.

Change-Id: I68a2131fa8ee80828354c9db4ac405c3f77c3b90
Closes-bug: 1302701
neutron/db/l3_db.py
neutron/plugins/midonet/plugin.py
neutron/plugins/vmware/plugins/base.py
neutron/plugins/vmware/plugins/service.py
neutron/tests/unit/test_l3_plugin.py