def _clean_up_conntrack_entries(self): """Removes conntrack entries for all the IPs in self._removed_ips.""" _log.debug("Cleaning up conntrack for old IPs: %s", self._removed_ips) devices.remove_conntrack_flows(self._removed_ips, IP_TYPE_TO_VERSION[self.ip_type]) # We could use self._removed_ips.clear() but it's hard to UT because # the UT sees the update. self._removed_ips = set()
def _clean_up_conntrack_entries(self): """Removes conntrack entries for all the IPs in self._removed_ips.""" _log.debug("Cleaning up conntrack for old IPs: %s", self._removed_ips) devices.remove_conntrack_flows( self._removed_ips, 4 if self.ip_type == futils.IPV4 else 6 ) # We could use self._removed_ips.clear() but it's hard to UT because # the UT sees the update. self._removed_ips = set()
def test_remove_conntrack_v6(self, m_check_call): devices.remove_conntrack_flows(set(["1234::1"]), 6) self.assertEqual( m_check_call.mock_calls, [ mock.call(["conntrack", "--family", "ipv6", "--delete", "--orig-src", "1234::1"]), mock.call(["conntrack", "--family", "ipv6", "--delete", "--orig-dst", "1234::1"]), mock.call(["conntrack", "--family", "ipv6", "--delete", "--reply-src", "1234::1"]), mock.call(["conntrack", "--family", "ipv6", "--delete", "--reply-dst", "1234::1"]), ], )
def test_remove_conntrack_v6(self, m_check_call): devices.remove_conntrack_flows(set(["1234::1"]), 6) self.assertEqual(m_check_call.mock_calls, [ mock.call(["conntrack", "--family", "ipv6", "--delete", "--orig-src", "1234::1"]), mock.call(["conntrack", "--family", "ipv6", "--delete", "--orig-dst", "1234::1"]), mock.call(["conntrack", "--family", "ipv6", "--delete", "--reply-src", "1234::1"]), mock.call(["conntrack", "--family", "ipv6", "--delete", "--reply-dst", "1234::1"]), ])
def test_remove_conntrack_error(self, m_check_call): m_check_call.side_effect = futils.FailedSystemCall("message", [], 1, "", "unexpected error") devices.remove_conntrack_flows(set(["10.0.0.1"]), 4) self.assertEqual( m_check_call.mock_calls, [ mock.call(["conntrack", "--family", "ipv4", "--delete", "--orig-src", "10.0.0.1"]), mock.call(["conntrack", "--family", "ipv4", "--delete", "--orig-dst", "10.0.0.1"]), mock.call(["conntrack", "--family", "ipv4", "--delete", "--reply-src", "10.0.0.1"]), mock.call(["conntrack", "--family", "ipv4", "--delete", "--reply-dst", "10.0.0.1"]), ], )
def test_remove_conntrack_error(self, m_check_call): m_check_call.side_effect = futils.FailedSystemCall( "message", [], 1, "", "unexpected error" ) devices.remove_conntrack_flows(set(["10.0.0.1"]), 4) # Each call is retried 3 times. self.assertEqual(m_check_call.mock_calls, [mock.call(["conntrack", "--family", "ipv4", "--delete", "--orig-src", "10.0.0.1"])] * 3 + [mock.call(["conntrack", "--family", "ipv4", "--delete", "--orig-dst", "10.0.0.1"])] * 3 + [mock.call(["conntrack", "--family", "ipv4", "--delete", "--reply-src", "10.0.0.1"])] * 3 + [mock.call(["conntrack", "--family", "ipv4", "--delete", "--reply-dst", "10.0.0.1"])] * 3)
def test_remove_conntrack_missing(self, m_check_call): m_check_call.side_effect = futils.FailedSystemCall( "message", [], 1, "", "0 flow entries" ) devices.remove_conntrack_flows(set(["10.0.0.1"]), 4) self.assertEqual(m_check_call.mock_calls, [ mock.call(["conntrack", "--family", "ipv4", "--delete", "--orig-src", "10.0.0.1"]), mock.call(["conntrack", "--family", "ipv4", "--delete", "--orig-dst", "10.0.0.1"]), mock.call(["conntrack", "--family", "ipv4", "--delete", "--reply-src", "10.0.0.1"]), mock.call(["conntrack", "--family", "ipv4", "--delete", "--reply-dst", "10.0.0.1"]), ])