summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Doran <sdoran@redhat.com>2020-12-07 18:34:32 -0500
committerGitHub <noreply@github.com>2020-12-07 17:34:32 -0600
commit7f1ee0763467917e4bf54c0a2f052515c296f3ce (patch)
tree416e5274ac5ad0c3e18721403997ea6503afebfc
parent2a6b411a80c8c539786165b2fa3afcae90744794 (diff)
downloadansible-7f1ee0763467917e4bf54c0a2f052515c296f3ce.tar.gz
[stable-2.10] iptables: Reorder comment postition (#71496) (#72548)
(cherry picked from commit c1da427a5e) Co-authored-by: Amin Vakil <info@aminvakil.com>
-rw-r--r--changelogs/fragments/71496-iptables-reorder-comment-position.yml2
-rw-r--r--lib/ansible/modules/iptables.py4
-rw-r--r--test/units/modules/test_iptables.py41
3 files changed, 45 insertions, 2 deletions
diff --git a/changelogs/fragments/71496-iptables-reorder-comment-position.yml b/changelogs/fragments/71496-iptables-reorder-comment-position.yml
new file mode 100644
index 0000000000..942edb22a7
--- /dev/null
+++ b/changelogs/fragments/71496-iptables-reorder-comment-position.yml
@@ -0,0 +1,2 @@
+minor_changes:
+ - iptables - reorder comment postition to be at the end (https://github.com/ansible/ansible/issues/71444).
diff --git a/lib/ansible/modules/iptables.py b/lib/ansible/modules/iptables.py
index 1e3aac63ed..efe31c60f9 100644
--- a/lib/ansible/modules/iptables.py
+++ b/lib/ansible/modules/iptables.py
@@ -557,8 +557,6 @@ def construct_rule(params):
'--set-dscp-class',
False)
append_match_flag(rule, params['syn'], '--syn', True)
- append_match(rule, params['comment'], 'comment')
- append_param(rule, params['comment'], '--comment', False)
if 'conntrack' in params['match']:
append_csv(rule, params['ctstate'], '--ctstate')
elif 'state' in params['match']:
@@ -590,6 +588,8 @@ def construct_rule(params):
params['icmp_type'],
ICMP_TYPE_OPTIONS[params['ip_version']],
False)
+ append_match(rule, params['comment'], 'comment')
+ append_param(rule, params['comment'], '--comment', False)
return rule
diff --git a/test/units/modules/test_iptables.py b/test/units/modules/test_iptables.py
index 68a80d2013..25a157e552 100644
--- a/test/units/modules/test_iptables.py
+++ b/test/units/modules/test_iptables.py
@@ -876,3 +876,44 @@ class TestIptables(ModuleTestCase):
'-j',
'ACCEPT'
])
+
+ def test_comment_position_at_end(self):
+ """Test flush without parameters"""
+ set_module_args({
+ 'chain': 'INPUT',
+ 'jump': 'ACCEPT',
+ 'action': 'insert',
+ 'ctstate': ['NEW'],
+ 'comment': 'this is a comment',
+ '_ansible_check_mode': True,
+ })
+
+ commands_results = [
+ (0, '', ''),
+ ]
+
+ with patch.object(basic.AnsibleModule, 'run_command') as run_command:
+ run_command.side_effect = commands_results
+ with self.assertRaises(AnsibleExitJson) as result:
+ iptables.main()
+ self.assertTrue(result.exception.args[0]['changed'])
+
+ self.assertEqual(run_command.call_count, 1)
+ self.assertEqual(run_command.call_args_list[0][0][0], [
+ '/sbin/iptables',
+ '-t',
+ 'filter',
+ '-C',
+ 'INPUT',
+ '-j',
+ 'ACCEPT',
+ '-m',
+ 'conntrack',
+ '--ctstate',
+ 'NEW',
+ '-m',
+ 'comment',
+ '--comment',
+ 'this is a comment'
+ ])
+ self.assertEqual(run_command.call_args[0][0][14], 'this is a comment')