Merge "Retry namespace deletion to mitigate cascading race"
This commit is contained in:
commit
b97051af2d
|
@ -90,11 +90,25 @@ class NamespacePodSubnetDriver(default_subnet.DefaultPodSubnetDriver):
|
||||||
try:
|
try:
|
||||||
neutron.remove_interface_router(router_id,
|
neutron.remove_interface_router(router_id,
|
||||||
{"subnet_id": subnet_id})
|
{"subnet_id": subnet_id})
|
||||||
neutron.delete_network(net_id)
|
except n_exc.NotFound:
|
||||||
except n_exc.NotFound as ex:
|
LOG.debug("Subnet %(subnet)s not attached to router %(router)s",
|
||||||
LOG.debug("Neutron resource not found: %s", ex)
|
{'subnet': subnet_id, 'router': router_id})
|
||||||
except n_exc.NeutronClientException:
|
except n_exc.NeutronClientException:
|
||||||
LOG.exception("Error deleting neutron resources.")
|
LOG.exception("Error deleting subnet %(subnet)s from router "
|
||||||
|
"%(router)s.", {'subnet': subnet_id, 'router':
|
||||||
|
router_id})
|
||||||
|
raise
|
||||||
|
|
||||||
|
try:
|
||||||
|
neutron.delete_network(net_id)
|
||||||
|
except n_exc.NotFound:
|
||||||
|
LOG.debug("Neutron Network not found: %s", net_id)
|
||||||
|
except n_exc.NetworkInUseClient:
|
||||||
|
LOG.exception("One or more ports in use on the network %s.",
|
||||||
|
net_id)
|
||||||
|
raise exceptions.ResourceNotReady(net_id)
|
||||||
|
except n_exc.NeutronClientException:
|
||||||
|
LOG.exception("Error deleting network %s.", net_id)
|
||||||
raise
|
raise
|
||||||
|
|
||||||
self._del_kuryrnet_crd(net_crd_name)
|
self._del_kuryrnet_crd(net_crd_name)
|
||||||
|
|
|
@ -259,9 +259,9 @@ class TestNamespacePodSubnetDriver(test_base.TestCase):
|
||||||
kubernetes = self.useFixture(k_fix.MockK8sClient()).client
|
kubernetes = self.useFixture(k_fix.MockK8sClient()).client
|
||||||
|
|
||||||
kubernetes.get.return_value = crd
|
kubernetes.get.return_value = crd
|
||||||
neutron.delete_network.side_effect = n_exc.NeutronClientException
|
neutron.delete_network.side_effect = n_exc.NetworkInUseClient
|
||||||
|
|
||||||
self.assertRaises(n_exc.NeutronClientException,
|
self.assertRaises(k_exc.ResourceNotReady,
|
||||||
cls.delete_namespace_subnet, m_driver, net_crd_name)
|
cls.delete_namespace_subnet, m_driver, net_crd_name)
|
||||||
|
|
||||||
kubernetes.get.assert_called_once()
|
kubernetes.get.assert_called_once()
|
||||||
|
|
Loading…
Reference in New Issue