Merge "Remove conntrack rule when FIP is deleted" into stable/rocky

This commit is contained in:
Zuul 2019-04-07 00:09:55 +00:00 committed by Gerrit Code Review
commit cf9722a9a2
2 changed files with 10 additions and 1 deletions

View File

@ -183,6 +183,7 @@ class DvrLocalRouter(dvr_router_base.DvrRouterBase):
device = ip_lib.IPDevice(fip_2_rtr_name, namespace=fip_ns_name)
device.route.delete_route(fip_cidr, str(rtr_2_fip.ip))
return device
def floating_ip_moved_dist(self, fip):
"""Handle floating IP move between fixed IPs."""
@ -196,7 +197,9 @@ class DvrLocalRouter(dvr_router_base.DvrRouterBase):
return self.floating_ip_added_dist(fip, ip_cidr)
def remove_floating_ip(self, device, ip_cidr):
self.floating_ip_removed_dist(ip_cidr)
fip_2_rtr_device = self.floating_ip_removed_dist(ip_cidr)
if fip_2_rtr_device:
fip_2_rtr_device.delete_conntrack_state(ip_cidr)
def move_floating_ip(self, fip):
self.floating_ip_moved_dist(fip)

View File

@ -306,7 +306,13 @@ class IPDevice(SubProcessBase):
can also be passed.
"""
self.addr.delete(cidr)
self.delete_conntrack_state(cidr)
def delete_conntrack_state(self, cidr):
"""Delete conntrack state rules
Deletes both rules (if existing), the destination and the reply one.
"""
ip_str = str(netaddr.IPNetwork(cidr).ip)
ip_wrapper = IPWrapper(namespace=self.namespace)