def test_open_new_conntrack_handler_pass(self):
     with nl_lib.ConntrackManager():
         nl_lib.nfct.nfct_open.assert_called_once_with(
             nl_constants.NFNL_SUBSYS_CTNETLINK, nl_constants.CONNTRACK)
     nl_lib.nfct.nfct_close.assert_called_once_with(
         nl_lib.nfct.nfct_open(nl_constants.NFNL_SUBSYS_CTNETLINK,
                               nl_constants.CONNTRACK))
 def test_conntrack_new_failed(self):
     nl_lib.nfct.nfct_new.return_value = None
     with nl_lib.ConntrackManager() as conntrack:
         nl_lib.nfct.nfct_open.assert_called_once_with(
             nl_constants.NFNL_SUBSYS_CTNETLINK, nl_constants.CONNTRACK)
         conntrack.delete_entries([FAKE_ICMP_ENTRY])
         nl_lib.nfct.nfct_new.assert_called_once_with()
     nl_lib.nfct.nfct_destroy.assert_called_once_with(None)
     nl_lib.nfct.nfct_close.assert_called_once_with(
         nl_lib.nfct.nfct_open(nl_constants.NFNL_SUBSYS_CTNETLINK,
                               nl_constants.CONNTRACK))
Exemplo n.º 3
0
 def test_conntrack_delete_icmp_entry(self):
     conntrack_filter = mock.Mock()
     nl_lib.nfct.nfct_new.return_value = conntrack_filter
     with nl_lib.ConntrackManager() as conntrack:
         nl_lib.nfct.nfct_open.assert_called_once_with(
             nl_constants.CONNTRACK,
             nl_constants.NFNL_SUBSYS_CTNETLINK)
         conntrack.delete_entries([FAKE_ICMP_ENTRY])
         calls = [
             mock.call(conntrack_filter,
                       nl_constants.ATTR_L3PROTO,
                       nl_constants.IPVERSION_SOCKET[4]),
             mock.call(conntrack_filter,
                       nl_constants.ATTR_L4PROTO,
                       constants.IP_PROTOCOL_MAP['icmp']),
             mock.call(conntrack_filter,
                       nl_constants.ATTR_ICMP_CODE,
                       int(FAKE_ICMP_ENTRY['code'])),
             mock.call(conntrack_filter,
                       nl_constants.ATTR_ICMP_TYPE,
                       int(FAKE_ICMP_ENTRY['type']))
         ]
         nl_lib.nfct.nfct_set_attr_u8.assert_has_calls(calls,
                                                       any_order=True)
         calls = [
             mock.call(conntrack_filter,
                       nl_constants.ATTR_ICMP_ID,
                       nl_lib.libc.htons(FAKE_ICMP_ENTRY['id'])),
             mock.call(conntrack_filter,
                       nl_constants.ATTR_ZONE,
                       int(FAKE_ICMP_ENTRY['zone']))
         ]
         nl_lib.nfct.nfct_set_attr_u16.assert_has_calls(calls,
                                                        any_order=True)
         calls = [
             mock.call(conntrack_filter,
                       nl_constants.ATTR_IPV4_SRC,
                       conntrack._convert_text_to_binary(
                           FAKE_ICMP_ENTRY['src'], 4)
                       ),
             mock.call(conntrack_filter,
                       nl_constants.ATTR_IPV4_DST,
                       conntrack._convert_text_to_binary(
                           FAKE_ICMP_ENTRY['dst'], 4)
                       ),
         ]
         nl_lib.nfct.nfct_set_attr.assert_has_calls(calls, any_order=True)
         nl_lib.nfct.nfct_destroy.assert_called_once_with(conntrack_filter)
     nl_lib.nfct.nfct_close.assert_called_once_with(nl_lib.nfct.nfct_open(
         nl_constants.CONNTRACK,
         nl_constants.NFNL_SUBSYS_CTNETLINK))
    def test_conntrack_list_entries(self):
        with nl_lib.ConntrackManager() as conntrack:

            nl_lib.nfct.nfct_open.assert_called_once_with(
                nl_constants.NFNL_SUBSYS_CTNETLINK, nl_constants.CONNTRACK)

            conntrack.list_entries()

            nl_lib.nfct.nfct_callback_register.assert_has_calls([
                mock.call(nl_lib.nfct.nfct_open(), nl_constants.NFCT_T_ALL,
                          mock.ANY, None)
            ])
            nl_lib.nfct.nfct_query.assert_called_once_with(
                nl_lib.nfct.nfct_open(nl_constants.NFNL_SUBSYS_CTNETLINK,
                                      nl_constants.CONNTRACK),
                nl_constants.NFCT_Q_DUMP, mock.ANY)
        nl_lib.nfct.nfct_close.assert_called_once_with(
            nl_lib.nfct.nfct_open(nl_constants.NFNL_SUBSYS_CTNETLINK,
                                  nl_constants.CONNTRACK))
 def test_open_new_conntrack_handler_failed(self):
     nl_lib.nfct.nfct_open.return_value = None
     with testtools.ExpectedException(exceptions.CTZoneExhaustedError):
         with nl_lib.ConntrackManager():
             nl_lib.nfct.nfct_open.assert_called_once_with()
         nl_lib.nfct.nfct_close.assert_not_called()