mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-03-26 21:33:05 +00:00
As ansible-core 2.19 'upper' and 'lower' filters make lists into strings and these strings are not interpreted as lists when running the plugins, it is needed to use 'map(<filter>)' to apply the filter to all entries of a list. Signed-off-by: Rafael Guterres Jeffman <rjeffman@redhat.com>
145 lines
5.9 KiB
YAML
145 lines
5.9 KiB
YAML
---
|
|
- name: Test hostgroup members case insensitive
|
|
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) }}"
|
|
ipahost:
|
|
ipaadmin_password: SomeADMINpassword
|
|
ipaapi_context: "{{ ipa_context | default(omit) }}"
|
|
ipahostgroup:
|
|
ipaadmin_password: SomeADMINpassword
|
|
ipaapi_context: "{{ ipa_context | default(omit) }}"
|
|
|
|
vars:
|
|
# Hostnames are supposed to have first letter
|
|
# capitalized for this test.
|
|
test_hosts:
|
|
- Host1
|
|
- Host2
|
|
test_hostgroups:
|
|
- testhostgroup1
|
|
# TestHostgrop2 is meant to use CamelCase here.
|
|
- TestHostGroup2
|
|
|
|
tasks:
|
|
- name: Test in all supported versions of IPA
|
|
block:
|
|
# setup environment
|
|
- name: Ensure domain name is set
|
|
ansible.builtin.set_fact:
|
|
ipa_domain: "test.local"
|
|
when: ipa_domain is not defined
|
|
|
|
- name: Ensure hostgroup testhostgroup1 and testhostgroup2 are absent
|
|
ipahostgroup:
|
|
name: "{{ test_hostgroups }}"
|
|
state: absent
|
|
|
|
- name: Ensure test hosts are present
|
|
ipahost:
|
|
name: "{{ item }}.{{ ipa_domain }}"
|
|
force: true
|
|
loop: "{{ test_hosts }}"
|
|
|
|
- name: Ensure hostgroup testhostgroup2 is present
|
|
ipahostgroup:
|
|
name: testhostgroup2
|
|
|
|
# tests
|
|
- name: Hostgroup should not be renamed only due to case
|
|
ipahostgroup:
|
|
name: testhostgroup2
|
|
rename: testhostgroup2
|
|
state: renamed
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Test hostgroup presence with single host and action hostgroup
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, value: "{{ test_hosts[0] | lower }}", expected: true }
|
|
- { id: 2, value: "{{ test_hosts[0] | upper }}", expected: false }
|
|
- { id: 3, value: "{{ test_hosts[0] }}", expected: false }
|
|
block:
|
|
- name: "Ensure hostgroup testhostgroup with host 'host1'"
|
|
ipahostgroup:
|
|
name: testhostgroup1
|
|
host: "{{ item.value }}"
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "Test id: {{ item.id }}"
|
|
|
|
- name: Test hostgroup presence with multiple hosts and action hostgroup
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, value: "{{ test_hosts | map('lower') }}", expected: true }
|
|
- { id: 2, value: "{{ test_hosts | map('upper') }}", expected: false }
|
|
- { id: 3, value: "{{ test_hosts }}", expected: false }
|
|
- { id: 4, value: "{{ test_hosts[1] }}", expected: true }
|
|
- { id: 5, value: "{{ test_hosts[1] | lower }}", expected: false }
|
|
- { id: 6, value: "{{ test_hosts[1] | upper }}", expected: false }
|
|
- { id: 7, value: "{{ test_hosts[0] }}", expected: true }
|
|
- { id: 8, value: "{{ test_hosts[0] | lower }}", expected: false }
|
|
- { id: 9, value: "{{ test_hosts[0] | upper }}", expected: false }
|
|
block:
|
|
- name: "Ensure hostgroup testhostgroup with host 'host1'"
|
|
ipahostgroup:
|
|
name: testhostgroup1
|
|
host: "{{ item.value }}"
|
|
register: output
|
|
failed_when: output.changed != item.expected or output.failed
|
|
loop: "{{ test_cases }}"
|
|
loop_control:
|
|
label: "Test id: {{ item.id }}"
|
|
|
|
- name: Test hostgroup with multiple hosts and action member
|
|
vars:
|
|
test_cases:
|
|
- { id: 1, value: "{{ test_hosts | map('lower') }}", state: "absent", expected: true }
|
|
- { id: 2, value: "{{ test_hosts | map('upper') }}", state: "absent", expected: false }
|
|
- { id: 3, value: "{{ test_hosts }}", state: "present", expected: true }
|
|
- { id: 4, value: "{{ test_hosts[1] }}", state: "absent", expected: true }
|
|
- { id: 5, value: "{{ test_hosts[1] | lower }}", state: "absent", expected: false }
|
|
- { id: 6, value: "{{ test_hosts[1] | upper }}", state: "absent", expected: false }
|
|
- { id: 7, value: "{{ test_hosts[0] | lower }}", state: "present", expected: false }
|
|
- { id: 8, value: "{{ test_hosts[0] }}", state: "present", expected: false }
|
|
- { id: 9, value: "{{ test_hosts[0] | upper }}", state: "present", expected: false }
|
|
- { id: 10, value: "{{ test_hosts | map('upper') }}", state: "present", expected: true }
|
|
- { id: 11, value: "{{ test_hosts[1] }}", state: "present", expected: false }
|
|
- { id: 12, value: "{{ test_hosts[0] | lower }}", state: "present", expected: false }
|
|
- { id: 13, value: "{{ test_hosts[0] }}", state: "absent", expected: true }
|
|
- { id: 14, value: "{{ test_hosts[0] | lower }}", state: "absent", expected: false }
|
|
- { id: 15, value: "{{ test_hosts[0] | upper }}", state: "absent", expected: false }
|
|
block:
|
|
- name: "Ensure hostgroup testhostgroup with host 'host1'"
|
|
ipahostgroup:
|
|
name: testhostgroup1
|
|
host: "{{ item.value }}"
|
|
action: member
|
|
state: "{{ item.state }}"
|
|
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 hostgroup testhostgroup is absent
|
|
ipahostgroup:
|
|
name: "{{ test_hostgroups }}"
|
|
state: absent
|
|
|
|
- name: Ensure test hosts are absent
|
|
ipahost:
|
|
name: "{{ test_hosts | product([ipa_domain]) | map('join') | list }}"
|
|
state: absent
|