diff --git a/plugins/modules/ipadnsconfig.py b/plugins/modules/ipadnsconfig.py index d363d37c43df6efa81e955ddd346de8491984f6f..7b7432020d8313d3754d8be2a2b4be5776f6198e 100644 --- a/plugins/modules/ipadnsconfig.py +++ b/plugins/modules/ipadnsconfig.py @@ -173,7 +173,10 @@ def gen_args(module, state, action, dnsconfig, forwarders, forward_policy, _args['idnsforwardpolicy'] = forward_policy if allow_sync_ptr is not None: - _args['idnsallowsyncptr'] = 'TRUE' if allow_sync_ptr else 'FALSE' + if module.ipa_check_version("<", "4.9.10"): + _args['idnsallowsyncptr'] = "TRUE" if allow_sync_ptr else "FALSE" + else: + _args['idnsallowsyncptr'] = allow_sync_ptr return _args @@ -199,7 +202,8 @@ def main(): choices=["member", "dnsconfig"]), state=dict(type="str", default="present", choices=["present", "absent"]), - ) + ), + supports_check_mode=True, ) ansible_module._ansible_debug = True diff --git a/tests/azure/templates/variables.yaml b/tests/azure/templates/variables.yaml index f200416bf27feff11ac1a4972d19acf7de617364..b6e1686806c728654b5e2ff21a7d5e58f0e6f127 100644 --- a/tests/azure/templates/variables.yaml +++ b/tests/azure/templates/variables.yaml @@ -16,5 +16,5 @@ variables: # ipa_enabled_tests: >- ipa_disabled_modules: >- dnsconfig, - dnsforwardzone, - # ipa_disabled_tests: >- + ipa_disabled_tests: >- + test_dnsconfig_forwarders_ports diff --git a/tests/dnsconfig/test_dnsconfig.yml b/tests/dnsconfig/test_dnsconfig.yml index b12d56fb239a9c4b13e1f882bd50b02daeb7c5a7..cadfa3370e89b84af3ad86d36a575de707a5a0ba 100644 --- a/tests/dnsconfig/test_dnsconfig.yml +++ b/tests/dnsconfig/test_dnsconfig.yml @@ -13,14 +13,11 @@ forwarders: - ip_address: 8.8.8.8 - ip_address: 8.8.4.4 - - ip_address: 2001:4860:4860::8888 - - ip_address: 2001:4860:4860::8888 - port: 53 state: absent action: member # Tests. - - name: Set config to invalid IPv4. + - name: Set forward with invalid IPv4. ipadnsconfig: ipaadmin_password: SomeADMINpassword ipaapi_context: "{{ ipa_context | default(omit) }}" @@ -54,8 +51,6 @@ forwarders: - ip_address: 8.8.8.8 - ip_address: 8.8.4.4 - - ip_address: 2001:4860:4860::8888 - port: 53 forward_policy: only allow_sync_ptr: yes register: result @@ -68,8 +63,6 @@ forwarders: - ip_address: 8.8.8.8 - ip_address: 8.8.4.4 - - ip_address: 2001:4860:4860::8888 - port: 53 forward_policy: only allow_sync_ptr: yes register: result @@ -97,14 +90,15 @@ register: result failed_when: result.changed or result.failed - - name: Ensure forwarder 8.8.4.4 is present. + - name: Check if forwarder 8.8.4.4 is present. ipadnsconfig: ipaadmin_password: SomeADMINpassword ipaapi_context: "{{ ipa_context | default(omit) }}" forwarders: - ip_address: 8.8.4.4 + check_mode: yes register: result - failed_when: not result.changed or result.failed + failed_when: result.changed or result.failed - name: Ensure forwarder 8.8.8.8 is present. ipadnsconfig: @@ -115,35 +109,16 @@ register: result failed_when: not result.changed or result.failed - - name: Ensure forwarder 8.8.4.4 is present. + - name: Check forwarder 8.8.4.4 is still present. ipadnsconfig: ipaadmin_password: SomeADMINpassword ipaapi_context: "{{ ipa_context | default(omit) }}" forwarders: - ip_address: 8.8.4.4 + check_mode: yes register: result failed_when: not result.changed or result.failed - - name: Ensure forwarders are absent. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.4.4 - - ip_address: 8.8.8.8 - register: result - failed_when: not result.changed or result.failed - - - name: Ensure forwarders are absent, again. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.4.4 - - ip_address: 8.8.8.8 - register: result - failed_when: result.changed or result.failed - - name: Disable global forwarders. ipadnsconfig: ipaadmin_password: SomeADMINpassword @@ -208,97 +183,6 @@ register: result failed_when: result.changed or result.failed - - name: Ensure all forwarders are absent. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.8.8 - - ip_address: 8.8.4.4 - - ip_address: 2001:4860:4860::8888 - port: 53 - state: absent - action: member - register: result - failed_when: not result.changed or result.failed - - - name: Ensure all forwarders are absent, again. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.8.8 - - ip_address: 8.8.4.4 - - ip_address: 2001:4860:4860::8888 - port: 53 - state: absent - action: member - register: result - failed_when: result.changed or result.failed - - - name: Ensure forwarder is present. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.8.8 - register: result - failed_when: not result.changed or result.failed - - - name: Ensure forwarders is not present. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.4.4 - check_mode: yes - register: result - failed_when: not result.changed or result.failed - - - name: Ensure forwarders are present. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.4.4 - - ip_address: 8.8.8.8 - action: member - register: result - failed_when: not result.changed or result.failed - - - name: Ensure forwarders are present, again. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.4.4 - - ip_address: 8.8.8.8 - action: member - register: result - failed_when: result.changed or result.failed - - - name: Ensure another forwarder is present. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.4.4 - action: member - register: result - failed_when: result.changed or result.failed - - - name: Ensure forwarders are present. - ipadnsconfig: - ipaadmin_password: SomeADMINpassword - ipaapi_context: "{{ ipa_context | default(omit) }}" - forwarders: - - ip_address: 8.8.4.4 - - ip_address: 8.8.8.8 - action: member - register: result - failed_when: result.changed or result.failed - - # Cleanup. - name: Ensure forwarders are absent. ipadnsconfig: ipaadmin_password: SomeADMINpassword @@ -306,8 +190,5 @@ forwarders: - ip_address: 8.8.8.8 - ip_address: 8.8.4.4 - - ip_address: 2001:4860:4860::8888 - - ip_address: 2001:4860:4860::8888 - port: 53 state: absent action: member diff --git a/tests/dnsconfig/test_dnsconfig_forwarders_ports.yml b/tests/dnsconfig/test_dnsconfig_forwarders_ports.yml new file mode 100644 index 0000000000000000000000000000000000000000..11c3e3962e8d0a98d0e25e6f06a0e221d0fe4d7a --- /dev/null +++ b/tests/dnsconfig/test_dnsconfig_forwarders_ports.yml @@ -0,0 +1,81 @@ +--- +- name: Test dnsconfig forwarders with custom ports + hosts: "{{ ipa_test_host | default('ipaserver') }}" + become: true + gather_facts: no + + tasks: + - block: + # Setup. + - name: Ensure forwarder with custom port is absent. + ipadnsconfig: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + forwarders: + - ip_address: 2001:4860:4860::8888 + port: 53 + state: absent + action: member + + # Tests. + + - name: Ensure forwarder with custom port is present. + ipadnsconfig: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + forwarders: + - ip_address: 2001:4860:4860::8888 + port: 53 + state: present + action: member + register: result + failed_when: not result.changed or result.failed + + - name: Ensure forwarder with custom port is present, again. + ipadnsconfig: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + forwarders: + - ip_address: 2001:4860:4860::8888 + port: 53 + state: present + action: member + register: result + failed_when: result.changed or result.failed + + - name: Ensure forwarder with custom port is absent. + ipadnsconfig: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + forwarders: + - ip_address: 2001:4860:4860::8888 + port: 53 + state: absent + action: member + register: result + failed_when: not result.changed or result.failed + + - name: Ensure forwarder with custom port is absent, again. + ipadnsconfig: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + forwarders: + - ip_address: 2001:4860:4860::8888 + port: 53 + state: absent + action: member + register: result + failed_when: result.changed or result.failed + + always: + + # Cleanup. + - name: Ensure forwarder with custom port is absent. + ipadnsconfig: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + forwarders: + - ip_address: 2001:4860:4860::8888 + port: 53 + state: absent + action: member