From 9c1f940d82a8b1c28bb634607b6c2a740d4830d0 Mon Sep 17 00:00:00 2001 From: Slawek Kaplonski Date: Thu, 24 Sep 2020 16:54:46 +0200 Subject: [PATCH] Don't fail if FIP is not in port forwarding cache during cleaning Lets use set's discard() method instead of remove() to not raise an exception when port forwarding or FIP is removed from port forwarding cache, and FIP is not in cache actually. Change-Id: Idf91002dc8ad4b16218c6a332a93c744218be73a Related-Bug: #1896735 (cherry picked from commit e392fb68c508e9bcd1390245879a28d34b1fa381) --- neutron/agent/l3/extensions/port_forwarding.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/neutron/agent/l3/extensions/port_forwarding.py b/neutron/agent/l3/extensions/port_forwarding.py index 3bf975d4d5e..59fa46300d7 100644 --- a/neutron/agent/l3/extensions/port_forwarding.py +++ b/neutron/agent/l3/extensions/port_forwarding.py @@ -72,11 +72,11 @@ class RouterFipPortForwardingMapping(object): if not self.managed_port_forwardings.get(port_forwarding.id): continue self.managed_port_forwardings.pop(port_forwarding.id) - self.fip_port_forwarding[port_forwarding.floatingip_id].remove( + self.fip_port_forwarding[port_forwarding.floatingip_id].discard( port_forwarding.id) if not self.fip_port_forwarding[port_forwarding.floatingip_id]: self.fip_port_forwarding.pop(port_forwarding.floatingip_id) - self.router_fip_mapping[port_forwarding.router_id].remove( + self.router_fip_mapping[port_forwarding.router_id].discard( port_forwarding.floatingip_id) if not self.router_fip_mapping[port_forwarding.router_id]: del self.router_fip_mapping[port_forwarding.router_id] @@ -88,7 +88,7 @@ class RouterFipPortForwardingMapping(object): @lockutils.synchronized('port-forwarding-cache') def clear_by_fip(self, fip_id, router_id): - self.router_fip_mapping[router_id].remove(fip_id) + self.router_fip_mapping[router_id].discard(fip_id) if len(self.router_fip_mapping[router_id]) == 0: del self.router_fip_mapping[router_id] for pf_id in self.fip_port_forwarding[fip_id]: