diff --git a/changelogs/fragments/215_fix_REJECT_target_name.yml b/changelogs/fragments/215_fix_REJECT_target_name.yml new file mode 100644 index 0000000..206589f --- /dev/null +++ b/changelogs/fragments/215_fix_REJECT_target_name.yml @@ -0,0 +1,2 @@ +bugfixes: + - firewalld - fix setting zone target to ``%%REJECT%%`` (https://github.com/ansible-collections/ansible.posix/pull/215). diff --git a/plugins/modules/firewalld.py b/plugins/modules/firewalld.py index 30acedf..ae5c2a2 100644 --- a/plugins/modules/firewalld.py +++ b/plugins/modules/firewalld.py @@ -114,7 +114,7 @@ options: description: - firewalld Zone target - If state is set to C(absent), this will reset the target to default - choices: [ default, ACCEPT, DROP, REJECT ] + choices: [ default, ACCEPT, DROP, "%%REJECT%%" ] type: str version_added: 1.2.0 notes: @@ -748,7 +748,7 @@ def main(): interface=dict(type='str'), masquerade=dict(type='str'), offline=dict(type='bool'), - target=dict(type='str', choices=['default', 'ACCEPT', 'DROP', 'REJECT']), + target=dict(type='str', choices=['default', 'ACCEPT', 'DROP', '%%REJECT%%']), ), supports_check_mode=True, required_by=dict( diff --git a/tests/integration/targets/firewalld/tasks/zone_target_test_cases.yml b/tests/integration/targets/firewalld/tasks/zone_target_test_cases.yml index cbcafed..085762a 100644 --- a/tests/integration/targets/firewalld/tasks/zone_target_test_cases.yml +++ b/tests/integration/targets/firewalld/tasks/zone_target_test_cases.yml @@ -67,3 +67,55 @@ assert: that: - result is not changed + +- name: firewalld dmz zone target %%REJECT%% + firewalld: + zone: dmz + permanent: True + state: present + target: '%%REJECT%%' + register: result + +- name: assert firewalld dmz zone target %%REJECT%% present worked + assert: + that: + - result is changed + +- name: firewalld dmz zone target %%REJECT%% rerun (verify not changed) + firewalld: + zone: dmz + permanent: True + state: present + target: '%%REJECT%%' + register: result + +- name: assert firewalld dmz zone target %%REJECT%% present worked (verify not changed) + assert: + that: + - result is not changed + +- name: firewalld dmz zone target %%REJECT%% absent + firewalld: + zone: dmz + permanent: True + state: absent + target: '%%REJECT%%' + register: result + +- name: assert firewalld dmz zone target %%REJECT%% absent worked + assert: + that: + - result is changed + +- name: firewalld dmz zone target %%REJECT%% rerun (verify not changed) + firewalld: + zone: dmz + permanent: True + state: absent + target: '%%REJECT%%' + register: result + +- name: assert firewalld dmz zone target %%REJECT%% present worked (verify not changed) + assert: + that: + - result is not changed \ No newline at end of file