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
This commit is contained in:
Slawek Kaplonski 2020-09-24 16:54:46 +02:00
parent 164f12349f
commit e392fb68c5
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]: