Ejemplo n.º 1
0
    def test_get_rule_handle(self):
        '''
        Test if it get the handle for a particular rule
        '''
        self.assertEqual(nftables.get_rule_handle(),
                         {'result': False,
                          'comment': 'Chain needs to be specified'})

        self.assertEqual(nftables.get_rule_handle(chain='input'),
                         {'result': False,
                          'comment': 'Rule needs to be specified'})

        _ru = 'input tcp dport 22 log accept'
        ret = {'result': False,
               'comment': 'Table filter in family ipv4 does not exist'}
        mock = MagicMock(return_value='')
        with patch.dict(nftables.__salt__, {'cmd.run': mock}):
            self.assertEqual(nftables.get_rule_handle(chain='input', rule=_ru),
                             ret)

        ret = {'result': False,
               'comment': 'Chain input in table filter in family ipv4 does not exist'}
        mock = MagicMock(return_value='table ip filter')
        with patch.dict(nftables.__salt__, {'cmd.run': mock}):
            self.assertEqual(nftables.get_rule_handle(chain='input', rule=_ru),
                             ret)

        ret = {'result': False,
               'comment': ('Rule input tcp dport 22 log accept chain'
                           ' input in table filter in family ipv4 does not exist')}
        ret1 = {'result': False,
                'comment': 'Could not find rule input tcp dport 22 log accept'}
        with patch.object(nftables, 'check_table',
                          MagicMock(return_value={'result': True,
                                                  'comment': ''})):
            with patch.object(nftables, 'check_chain',
                              MagicMock(return_value={'result': True,
                                                      'comment': ''})):
                _ret1 = {'result': False,
                         'comment': ('Rule input tcp dport 22 log accept'
                                     ' chain input in table filter in'
                                     ' family ipv4 does not exist')}
                _ret2 = {'result': True, 'comment': ''}
                with patch.object(nftables, 'check',
                                  MagicMock(side_effect=[_ret1, _ret2])):
                    self.assertEqual(nftables.get_rule_handle(chain='input',
                                                              rule=_ru), ret)

                    _ru = 'input tcp dport 22 log accept'
                    mock = MagicMock(return_value='')
                    with patch.dict(nftables.__salt__, {'cmd.run': mock}):
                        self.assertEqual(nftables.get_rule_handle(chain='input',
                                                                  rule=_ru),
                                         ret1)
Ejemplo n.º 2
0
    def test_get_rule_handle(self):
        '''
        Test if it get the handle for a particular rule
        '''
        self.assertEqual(nftables.get_rule_handle(),
                         'Error: Chain needs to be specified')

        self.assertEqual(nftables.get_rule_handle(chain='input'),
                         'Error: Rule needs to be specified')

        _ru = 'input tcp dport 22 log accept'
        ret = 'Error: table filter in family ipv4 does not exist'
        mock = MagicMock(return_value='')
        with patch.dict(nftables.__salt__, {'cmd.run': mock}):
            self.assertEqual(nftables.get_rule_handle(chain='input', rule=_ru),
                             ret)

        ret = 'Error: chain input in table filter in family ipv4 does not exist'
        mock = MagicMock(return_value='table ip filter')
        with patch.dict(nftables.__salt__, {'cmd.run': mock}):
            self.assertEqual(nftables.get_rule_handle(chain='input', rule=_ru),
                             ret)

        ret = ('Error: rule input tcp dport 22 log accept chain input'
               ' in table filter in family ipv4 does not exist')
        ret1 = 'Error: could not find rule input tcp dport 22 log accept'
        with patch.object(nftables, 'check_table',
                          MagicMock(return_value=True)):
            with patch.object(nftables, 'check_chain',
                              MagicMock(return_value=True)):
                with patch.object(nftables, 'check',
                                  MagicMock(side_effect=[False, True])):
                    self.assertEqual(
                        nftables.get_rule_handle(chain='input', rule=_ru), ret)

                    _ru = 'input tcp dport 22 log accept'
                    mock = MagicMock(return_value='')
                    with patch.dict(nftables.__salt__, {'cmd.run': mock}):
                        self.assertEqual(
                            nftables.get_rule_handle(chain='input', rule=_ru),
                            ret1)
Ejemplo n.º 3
0
    def test_get_rule_handle(self):
        '''
        Test if it get the handle for a particular rule
        '''
        self.assertEqual(nftables.get_rule_handle(),
                         'Error: Chain needs to be specified')

        self.assertEqual(nftables.get_rule_handle(chain='input'),
                         'Error: Rule needs to be specified')

        _ru = 'input tcp dport 22 log accept'
        ret = 'Error: table filter in family ipv4 does not exist'
        mock = MagicMock(return_value='')
        with patch.dict(nftables.__salt__, {'cmd.run': mock}):
            self.assertEqual(nftables.get_rule_handle(chain='input', rule=_ru),
                             ret)

        ret = 'Error: chain input in table filter in family ipv4 does not exist'
        mock = MagicMock(return_value='table ip filter')
        with patch.dict(nftables.__salt__, {'cmd.run': mock}):
            self.assertEqual(nftables.get_rule_handle(chain='input', rule=_ru),
                             ret)

        ret = ('Error: rule input tcp dport 22 log accept chain input'
               ' in table filter in family ipv4 does not exist')
        ret1 = 'Error: could not find rule input tcp dport 22 log accept'
        with patch.object(nftables, 'check_table',
                          MagicMock(return_value=True)):
            with patch.object(nftables, 'check_chain',
                              MagicMock(return_value=True)):
                with patch.object(nftables, 'check',
                                  MagicMock(side_effect=[False, True])):
                    self.assertEqual(nftables.get_rule_handle(chain='input',
                                                              rule=_ru), ret)

                    _ru = 'input tcp dport 22 log accept'
                    mock = MagicMock(return_value='')
                    with patch.dict(nftables.__salt__, {'cmd.run': mock}):
                        self.assertEqual(nftables.get_rule_handle(chain='input',
                                                                  rule=_ru),
                                         ret1)
Ejemplo n.º 4
0
    def test_get_rule_handle(self):
        """
        Test if it get the handle for a particular rule
        """
        self.assertEqual(
            nftables.get_rule_handle(),
            {"result": False, "comment": "Chain needs to be specified"},
        )

        self.assertEqual(
            nftables.get_rule_handle(chain="input"),
            {"result": False, "comment": "Rule needs to be specified"},
        )

        _ru = "input tcp dport 22 log accept"
        ret = {"result": False, "comment": "Table filter in family ipv4 does not exist"}
        mock = MagicMock(return_value="")
        with patch.dict(nftables.__salt__, {"cmd.run": mock}):
            self.assertEqual(nftables.get_rule_handle(chain="input", rule=_ru), ret)

        ret = {
            "result": False,
            "comment": "Chain input in table filter in family ipv4 does not exist",
        }
        mock = MagicMock(return_value="table ip filter")
        with patch.dict(nftables.__salt__, {"cmd.run": mock}):
            self.assertEqual(nftables.get_rule_handle(chain="input", rule=_ru), ret)

        ret = {
            "result": False,
            "comment": (
                "Rule input tcp dport 22 log accept chain"
                " input in table filter in family ipv4 does not exist"
            ),
        }
        ret1 = {
            "result": False,
            "comment": "Could not find rule input tcp dport 22 log accept",
        }
        with patch.object(
            nftables,
            "check_table",
            MagicMock(return_value={"result": True, "comment": ""}),
        ):
            with patch.object(
                nftables,
                "check_chain",
                MagicMock(return_value={"result": True, "comment": ""}),
            ):
                _ret1 = {
                    "result": False,
                    "comment": (
                        "Rule input tcp dport 22 log accept"
                        " chain input in table filter in"
                        " family ipv4 does not exist"
                    ),
                }
                _ret2 = {"result": True, "comment": ""}
                with patch.object(
                    nftables, "check", MagicMock(side_effect=[_ret1, _ret2])
                ):
                    self.assertEqual(
                        nftables.get_rule_handle(chain="input", rule=_ru), ret
                    )

                    _ru = "input tcp dport 22 log accept"
                    mock = MagicMock(return_value="")
                    with patch.dict(nftables.__salt__, {"cmd.run": mock}):
                        self.assertEqual(
                            nftables.get_rule_handle(chain="input", rule=_ru), ret1
                        )