From abf0cc325124d8603896e63f5652a838da102d3e Mon Sep 17 00:00:00 2001 From: Thomas Woerner <twoerner@redhat.com> Date: Tue, 22 Feb 2022 16:22:14 +0100 Subject: [PATCH] ipahost: Set allow_empty_string for auth_ind The parameter auth_ind is allowing to use "" to reset to the default value. The new check in params_get is not allowing to use empty strings in lists, therefore allow_empty_string=True had to be added to the call. A test has been added to verify that the empty strings are supported and working. --- plugins/modules/ipahost.py | 2 +- tests/host/test_host_empty_string_params.yml | 86 ++++++++++++++++++++ 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 tests/host/test_host_empty_string_params.yml diff --git a/plugins/modules/ipahost.py b/plugins/modules/ipahost.py index 453200e6..39857bca 100644 --- a/plugins/modules/ipahost.py +++ b/plugins/modules/ipahost.py @@ -764,7 +764,7 @@ def main(): mac_address = ansible_module.params_get("mac_address") sshpubkey = ansible_module.params_get("sshpubkey") userclass = ansible_module.params_get("userclass") - auth_ind = ansible_module.params_get("auth_ind") + auth_ind = ansible_module.params_get("auth_ind", allow_empty_string=True) requires_pre_auth = ansible_module.params_get("requires_pre_auth") ok_as_delegate = ansible_module.params_get("ok_as_delegate") ok_to_auth_as_delegate = ansible_module.params_get( diff --git a/tests/host/test_host_empty_string_params.yml b/tests/host/test_host_empty_string_params.yml new file mode 100644 index 00000000..59481d11 --- /dev/null +++ b/tests/host/test_host_empty_string_params.yml @@ -0,0 +1,86 @@ +--- +- name: Test host + hosts: "{{ ipa_test_host | default('ipaserver') }}" + become: yes + gather_facts: yes + + tasks: + - name: Get Domain from server name + set_fact: + ipaserver_domain: "{{ ansible_facts['fqdn'].split('.')[1:] | join ('.') }}" + when: ipaserver_domain is not defined + + - name: Set host1_fqdn .. host6_fqdn + set_fact: + host1_fqdn: "{{ 'host1.' + ipaserver_domain }}" + + # CLEANUP TEST ITEMS + + - name: Ensure host "{{ host1_fqdn }}" absent + ipahost: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + name: "{{ host1_fqdn }}" + state: absent + + # CREATE TEST ITEMS + + - name: Ensure host "{{ host1_fqdn }}" present + ipahost: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + name: "{{ host1_fqdn }}" + force: yes + register: result + failed_when: not result.changed or result.failed + + # TESTS + + - name: Ensure host "{{ host1_fqdn }}" present with auth_ind otp and radius + ipahost: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + name: "{{ host1_fqdn }}" + auth_ind: + - otp + - radius + register: result + failed_when: not result.changed or result.failed + + - name: Ensure host "{{ host1_fqdn }}" present with auth_ind otp and radius, again + ipahost: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + name: "{{ host1_fqdn }}" + auth_ind: + - otp + - radius + register: result + failed_when: result.changed or result.failed + + - name: Ensure host "{{ host1_fqdn }}" present with empty auth_ind + ipahost: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + name: "{{ host1_fqdn }}" + auth_ind: "" + register: result + failed_when: not result.changed or result.failed + + - name: Ensure host "{{ host1_fqdn }}" present with empty auth_ind, again + ipahost: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + name: "{{ host1_fqdn }}" + auth_ind: "" + register: result + failed_when: result.changed or result.failed + + # CLEANUP TEST ITEMS + + - name: Ensure host "{{ host1_fqdn }}" absent + ipahost: + ipaadmin_password: SomeADMINpassword + ipaapi_context: "{{ ipa_context | default(omit) }}" + name: "{{ host1_fqdn }}" + state: absent -- GitLab