mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-01-11 07:05:27 +01:00
Update firewalld module to consider the value of the masquerade parameter when determining if masquerade should be enabled/disabled.
This commit is contained in:
parent
090706b581
commit
e647e147a1
3 changed files with 185 additions and 9 deletions
|
|
@ -973,12 +973,21 @@ def main():
|
|||
msgs = msgs + transaction_msgs
|
||||
|
||||
if masquerade is not None:
|
||||
# Type of masquerade will be changed to boolean in a future release.
|
||||
masquerade_status = True
|
||||
try:
|
||||
masquerade_status = boolean(masquerade, True)
|
||||
except TypeError:
|
||||
module.warn('The value of the masquerade option is "%s". '
|
||||
'The type of the option will be changed from string to boolean in a future release. '
|
||||
'To avoid unexpected behavior, please change the value to boolean.' % masquerade)
|
||||
|
||||
expected_state = 'enabled' if (desired_state == 'enabled') == masquerade_status else 'disabled'
|
||||
transaction = MasqueradeTransaction(
|
||||
module,
|
||||
action_args=(),
|
||||
zone=zone,
|
||||
desired_state=desired_state,
|
||||
desired_state=expected_state,
|
||||
permanent=permanent,
|
||||
immediate=immediate,
|
||||
)
|
||||
|
|
@ -986,14 +995,6 @@ def main():
|
|||
changed, transaction_msgs = transaction.run()
|
||||
msgs = msgs + transaction_msgs
|
||||
|
||||
# Type of masquerade will be changed to boolean in a future release.
|
||||
try:
|
||||
boolean(masquerade, True)
|
||||
except TypeError:
|
||||
module.warn('The value of the masquerade option is "%s". '
|
||||
'The type of the option will be changed from string to boolean in a future release. '
|
||||
'To avoid unexpected behavior, please change the value to boolean.' % masquerade)
|
||||
|
||||
if target is not None:
|
||||
|
||||
transaction = ZoneTargetTransaction(
|
||||
|
|
|
|||
|
|
@ -0,0 +1,172 @@
|
|||
# Test playbook for the firewalld module
|
||||
# (c) 2022, Gregory Furlong <gnfzdz@fzdz.io>
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
- name: Masquerade enabled when masquerade is truthy and state is enabled
|
||||
block:
|
||||
- name: Testing enable masquerade
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: yes
|
||||
permanent: yes
|
||||
state: enabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is enabled
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Testing enable masquerade (verify not changed)
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: yes
|
||||
permanent: yes
|
||||
state: enabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is enabled (verify not changed)
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
- name: Masquerade disabled when masquerade is falsy and state is enabled
|
||||
block:
|
||||
- name: Testing disable masquerade
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: no
|
||||
permanent: yes
|
||||
state: enabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is disabled
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Testing disable masquerade (verify not changed)
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: no
|
||||
permanent: yes
|
||||
state: enabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is disabled (verify not changed)
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
- name: Masquerade enabled when masquerade is falsy and state is disabled
|
||||
block:
|
||||
- name: Testing enable masquerade
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: no
|
||||
permanent: yes
|
||||
state: disabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is enabled
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Testing enable masquerade (verify not changed)
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: no
|
||||
permanent: yes
|
||||
state: disabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is enabled (verify not changed)
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
- name: Masquerade disabled when masquerade is truthy and state is disabled
|
||||
block:
|
||||
- name: Testing disable masquerade
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: yes
|
||||
permanent: yes
|
||||
state: disabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is disabled
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Testing disable masquerade (verify not changed)
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: yes
|
||||
permanent: yes
|
||||
state: disabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is disabled (verify not changed)
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
# Validate backwards compatible behavior until masquerade is switched from string to boolean type
|
||||
- name: Masquerade enabled when masquerade is non-boolean string and state is enabled
|
||||
block:
|
||||
- name: Testing enable masquerade
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: 'some string'
|
||||
permanent: yes
|
||||
state: enabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is enabled
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Testing enable masquerade (verify not changed)
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: 'some string'
|
||||
permanent: yes
|
||||
state: enabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is enabled (verify not changed)
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
- name: Masquerade disabled when masquerade is non-boolean string and state is disabled
|
||||
block:
|
||||
- name: Testing disable masquerade
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: 'some string'
|
||||
permanent: yes
|
||||
state: disabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is disabled
|
||||
assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Testing disable masquerade (verify not changed)
|
||||
ansible.posix.firewalld:
|
||||
zone: trusted
|
||||
masquerade: 'some string'
|
||||
permanent: yes
|
||||
state: disabled
|
||||
register: result
|
||||
|
||||
- name: assert masquerade is disabled (verify not changed)
|
||||
assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
|
@ -21,3 +21,6 @@
|
|||
|
||||
# firewalld port forwarding operation test cases
|
||||
- include_tasks: port_forward_test_cases.yml
|
||||
|
||||
# firewalld masquerade operation test cases
|
||||
- include_tasks: masquerade_test_cases.yml
|
||||
|
|
|
|||
Loading…
Reference in a new issue