Sfoglia il codice sorgente

Ignore port deletion errors when deleting networks

Nuwan Goonasekera 8 anni fa
parent
commit
cdfdeada99
1 ha cambiato i file con 8 aggiunte e 1 eliminazioni
  1. 8 1
      cloudbridge/cloud/providers/openstack/resources.py

+ 8 - 1
cloudbridge/cloud/providers/openstack/resources.py

@@ -40,6 +40,8 @@ from cloudbridge.cloud.providers.openstack import helpers as oshelpers
 
 from keystoneclient.v3.regions import Region
 
+from neutronclient.common.exceptions import PortNotFoundClient
+
 import novaclient.exceptions as novaex
 
 from openstack.exceptions import HttpException
@@ -745,7 +747,12 @@ class OpenStackNetwork(BaseNetwork):
             ports = self._provider.neutron.list_ports(
                 network_id=self.id).get('ports', [])
             for port in ports:
-                self._provider.neutron.delete_port(port.get('id'))
+                try:
+                    self._provider.neutron.delete_port(port.get('id'))
+                except PortNotFoundClient:
+                    # Ports could have already been deleted if instances
+                    # are terminated etc. so exceptions can be safely ignored
+                    pass
             self._provider.neutron.delete_network(self.id)
         # Adhere to the interface docs
         if self.id not in str(self._provider.neutron.list_networks()):