diff --git a/ospurge/resources/neutron.py b/ospurge/resources/neutron.py index c5caa62..ed3ee7b 100644 --- a/ospurge/resources/neutron.py +++ b/ospurge/resources/neutron.py @@ -45,7 +45,8 @@ class RouterInterfaces(base.ServiceResource): def list(self): return self.cloud.list_ports( - filters={'device_owner': 'network:router_interface', + filters={'device_owner': ['network:router_interface', + 'network:router_interface_distributed'], 'tenant_id': self.cleanup_project_id} ) @@ -64,7 +65,8 @@ class Routers(base.ServiceResource): def check_prerequisite(self): return self.cloud.list_ports( - filters={'device_owner': 'network:router_interface', + filters={'device_owner': ['network:router_interface', + 'network:router_interface_distributed'], 'tenant_id': self.cleanup_project_id} ) == [] @@ -87,7 +89,9 @@ class Ports(base.ServiceResource): ports = self.cloud.list_ports( filters={'tenant_id': self.cleanup_project_id} ) - excluded = ['network:dhcp', 'network:router_interface'] + excluded = ['network:dhcp', + 'network:router_interface', + 'network:router_interface_distributed'] return [p for p in ports if p['device_owner'] not in excluded] def delete(self, resource): diff --git a/ospurge/tests/resources/test_neutron.py b/ospurge/tests/resources/test_neutron.py index 97df11d..d33b8a4 100644 --- a/ospurge/tests/resources/test_neutron.py +++ b/ospurge/tests/resources/test_neutron.py @@ -79,7 +79,8 @@ class TestRouterInterfaces(unittest.TestCase): self.assertIs(self.cloud.list_ports.return_value, neutron.RouterInterfaces(self.creds_manager).list()) self.cloud.list_ports.assert_called_once_with( - filters={'device_owner': 'network:router_interface', + filters={'device_owner': ['network:router_interface', + 'network:router_interface_distributed'], 'tenant_id': self.creds_manager.project_id} ) @@ -115,7 +116,8 @@ class TestRouters(unittest.TestCase): False, neutron.Routers(self.creds_manager).check_prerequisite()) self.cloud.list_ports.assert_called_with( - filters={'device_owner': 'network:router_interface', + filters={'device_owner': ['network:router_interface', + 'network:router_interface_distributed'], 'tenant_id': self.creds_manager.project_id} ) @@ -144,6 +146,7 @@ class TestPorts(unittest.TestCase): self.cloud.list_ports.return_value = [ {'device_owner': 'network:dhcp'}, {'device_owner': 'network:router_interface'}, + {'device_owner': 'network:router_interface_distributed'}, {'device_owner': ''} ] ports = neutron.Ports(self.creds_manager).list()