mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-03-26 21:33:05 +00:00
ipahostgroup parameters 'host', 'hostgroup', 'membermanager_user' and
'membermanager_group' must be compared in a case insensitive manner
and stored as lower case strings.
This patch fixes the comparison and storage of this parameters, and
change the handling of members to use the same structure as in newer
modules.
Two new tests files were added:
tests/hostgroup/test_hostgroup_case_insensitive.yml
tests/hostgroup/test_hostgroup_membermanager_case_insensitive.yml
180 lines
6.9 KiB
YAML
180 lines
6.9 KiB
YAML
---
|
|
- name: Test hostgroup membermanagers
|
|
hosts: ipaserver
|
|
become: true
|
|
gather_facts: false
|
|
module_defaults:
|
|
ipagroup:
|
|
ipaadmin_password: SomeADMINpassword
|
|
ipaapi_context: "{{ ipa_context | default(omit) }}"
|
|
ipauser:
|
|
ipaadmin_password: SomeADMINpassword
|
|
ipaapi_context: "{{ ipa_context | default(omit) }}"
|
|
ipahostgroup:
|
|
ipaadmin_password: SomeADMINpassword
|
|
ipaapi_context: "{{ ipa_context | default(omit) }}"
|
|
|
|
tasks:
|
|
- name: Include tasks ../env_freeipa_facts.yml
|
|
ansible.builtin.include_tasks: ../env_freeipa_facts.yml
|
|
|
|
- name: Tests requiring IPA version 4.8.4+
|
|
when: ipa_version is version('4.8.4', '>=')
|
|
block:
|
|
# setup environment
|
|
- name: Ensure host-group testhostgroup is absent
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
state: absent
|
|
|
|
- name: Ensure user manageruser1 and manageruser2 are present
|
|
ipauser:
|
|
users:
|
|
- name: manageruser1
|
|
first: manageruser1
|
|
last: Last1
|
|
- name: manageruser2
|
|
first: manageruser2
|
|
last: Last2
|
|
|
|
- name: Ensure managergroup1 and managergroup2 are present
|
|
ipagroup:
|
|
groups:
|
|
- name: managergroup1
|
|
- name: managergroup2
|
|
|
|
# tests
|
|
- name: Ensure host-group testhostgroup is present
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
|
|
- name: Test membermanager_user parameter presence
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, value: "{{ 'ManagerUser1' | lower }}", expected: true }
|
|
- { id: 2, value: "{{ 'ManagerUser1' | upper }}", expected: false }
|
|
- { id: 3, value: 'ManagerUser1', expected: false }
|
|
block:
|
|
- name: "Ensure membermanager_user 'manageruser1' is present for testhostgroup"
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
membermanager_user: "{{ item.value }}"
|
|
action: member
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "{{ item.value }}"
|
|
|
|
- name: Test membermanager_group parameter presence
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, value: "{{ 'ManagerGroup1' | upper }}", expected: true }
|
|
- { id: 2, value: "{{ 'ManagerGroup1' | lower }}", expected: false }
|
|
- { id: 3, value: 'ManagerGroup1', expected: false }
|
|
block:
|
|
- name: "Ensure membermanager_group 'managergroup1' is present for testhostgroup"
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
membermanager_group: "{{ item.value }}"
|
|
action: member
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "{{ item.value }}"
|
|
|
|
- name: Test membermanager_group and membermanager_user parameters presence
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, user: 'ManagerUser2', group: 'ManagerGroup2', expected: true }
|
|
- { id: 2, user: "{{ 'ManagerUser2' | upper }}", group: "{{ 'ManagerGroup2' | upper }}", expected: false }
|
|
- { id: 3, user: "{{ 'ManagerUser2' | lower }}", group: "{{ 'ManagerGroup2' | lower }}", expected: false }
|
|
block:
|
|
- name: "Ensure membermanager_group 'managergroup2' and membermanager_user 'manageruser2' are present for testhostgroup"
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
membermanager_group: "{{ item.group }}"
|
|
membermanager_user: "{{ item.user }}"
|
|
action: member
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "Test id: {{ item.id }}"
|
|
|
|
- name: Test membermanager_group parameter absence
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, value: 'ManagerGroup1', expected: true }
|
|
- { id: 2, value: "{{ 'ManagerGroup1' | lower }}", expected: false }
|
|
- { id: 3, value: "{{ 'ManagerGroup1' | upper }}", expected: false }
|
|
block:
|
|
- name: "Ensure membermanager_group 'managergroup1' is absent for testhostgroup"
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
membermanager_group: "{{ item.value }}"
|
|
action: member
|
|
state: absent
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "{{ item.value }}"
|
|
|
|
- name: Test membermanager_user parameter absence
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, value: 'ManagerUser1', expected: true }
|
|
- { id: 2, value: "{{ 'ManagerUser1' | lower }}", expected: false }
|
|
- { id: 3, value: "{{ 'ManagerUser1' | upper }}", expected: false }
|
|
block:
|
|
- name: "Ensure membermanager_user 'manageruser1' is absent for testhostgroup"
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
membermanager_user: "{{ item.value }}"
|
|
action: member
|
|
state: absent
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "{{ item.value }}"
|
|
|
|
- name: Test membermanager_group and membermanager_user parameters absence
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, user: "{{ 'ManagerUser2' | lower }}", group: "{{ 'ManagerGroup2' | lower }}", expected: true }
|
|
- { id: 2, user: 'ManagerUser2', group: 'ManagerGroup2', expected: false }
|
|
- { id: 3, user: "{{ 'ManagerUser2' | upper }}", group: "{{ 'ManagerGroup2' | upper }}", expected: false }
|
|
block:
|
|
- name: "Ensure membermanager_user 'manageruser2' and membermanager_group 'managergroup2' are absent for testhostgroup"
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
membermanager_group: "{{ item.group }}"
|
|
membermanager_user: "{{ item.user }}"
|
|
action: member
|
|
state: absent
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "Test id: {{ item.id }}"
|
|
|
|
always:
|
|
# cleanup
|
|
- name: Ensure host-group testhostgroup is absent
|
|
ipahostgroup:
|
|
name: testhostgroup
|
|
state: absent
|
|
|
|
- name: Ensure user manangeruser1 and manageruser2 is absent
|
|
ipauser:
|
|
name: manageruser1,manageruser2
|
|
state: absent
|
|
|
|
- name: Ensure group managergroup1 and managergroup2 are absent
|
|
ipagroup:
|
|
name: managergroup1,managergroup2
|
|
state: absent
|