Fix deletion of subnet_id from pd_subnets

In the RouterInfo._process_internal_ports() method when it process
old ports and port belongs to the subnet with CIDR assigned by
Prefix Delegation it will try to remove subnet_id key from the
pd_subnets dict.
However it seems that in some case it may happen that such subnet_id key
is not added to the pd_subnets dict and processing of ports fails.

We shouldn't fail in such case, if there is no subnet_id key in this
dict we should be good as we want to delete it simply. So this patch
changes that to not raise KeyError in such case.

Change-Id: I6e6d890c196716c0ef4bcc2922f1ec4c142a6e79
Closes-Bug: #1892364
(cherry picked from commit 13b894288e)
This commit is contained in:
Slawek Kaplonski 2020-08-20 22:39:04 +02:00
parent 8ff90c2bd4
commit a95ddf8ae8
1 changed files with 1 additions and 1 deletions

View File

@ -624,7 +624,7 @@ class RouterInfo(BaseRouterInfo):
for subnet in p['subnets']:
if ipv6_utils.is_ipv6_pd_enabled(subnet):
self.agent.pd.disable_subnet(self.router_id, subnet['id'])
del self.pd_subnets[subnet['id']]
self.pd_subnets.pop(subnet['id'], None)
for p in new_ports:
self.internal_network_added(p)