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 e392fb68c5)
This commit is contained in:
Slawek Kaplonski 2020-09-24 16:54:46 +02:00 committed by Flavio Fernandes
parent c5b4e8889e
commit 9c1f940d82
1 changed files with 3 additions and 3 deletions

View File

@ -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]: