From 6bc2ea09c5b7b35cb42482546eacd9b87becc112 Mon Sep 17 00:00:00 2001 From: Rudra Rugge Date: Thu, 9 Oct 2014 14:58:43 -0700 Subject: [PATCH] Delete floating ip references to VMIs associated with VIP Change-Id: I5062792bf1c3c4dc225aa9c5319f408a2e40dd4f Closes-Bug: 1378729 --- .../plugins/opencontrail/loadbalancer/virtual_ip.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py index 88b56e1..0b8379f 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py @@ -176,6 +176,16 @@ def _delete_virtual_interface(self, vmi_list): for ref in ip_refs: self._api.instance_ip_delete(id=ref['uuid']) + fip_refs = vmi.get_floating_ip_back_refs() + for ref in fip_refs or []: + try: + fip = self._api.floating_ip_read(id=ref['uuid']) + except NoIdError as ex: + LOG.error(ex) + continue + fip.set_virtual_machine_interface_list([]) + self._api.floating_ip_update(fip) + self._api.virtual_machine_interface_delete(id=interface_id) def create(self, context, vip):