mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-03-26 21:33:05 +00:00
The task to apply an unknown (invalid) host to an idview was not failing as expected and only reported no change. A new host verification step has been added to fail before trying to apply invalid hosts. unapplying an invalid host is not failing as the invalid host is indeed not applied.
339 lines
9.7 KiB
YAML
339 lines
9.7 KiB
YAML
---
|
|
- name: Test idview
|
|
hosts: "{{ ipa_test_host | default('ipaserver') }}"
|
|
# It is normally not needed to set "become" to "true" for a module test.
|
|
# Only set it to true if it is needed to execute commands as root.
|
|
become: false
|
|
# Enable "gather_facts" only if "ansible_facts" variable needs to be used.
|
|
gather_facts: false
|
|
module_defaults:
|
|
ipahost:
|
|
ipaadmin_password: SomeADMINpassword
|
|
ipaapi_context: "{{ ipa_context | default(omit) }}"
|
|
ipaidview:
|
|
ipaadmin_password: SomeADMINpassword
|
|
ipaapi_context: "{{ ipa_context | default(omit) }}"
|
|
|
|
tasks:
|
|
|
|
- name: Get Domain from server name
|
|
ansible.builtin.set_fact:
|
|
ipaserver_domain: "{{ ansible_facts['fqdn'].split('.')[1:] | join('.') }}"
|
|
when: ipaserver_domain is not defined
|
|
|
|
- name: Set host1_fqdn .. host2_fqdn
|
|
ansible.builtin.set_fact:
|
|
host1_fqdn: "{{ 'host1.' + ipaserver_domain }}"
|
|
host2_fqdn: "{{ 'host2.' + ipaserver_domain }}"
|
|
host3_fqdn: "{{ 'host3.' + ipaserver_domain }}"
|
|
|
|
# CLEANUP TEST ITEMS
|
|
|
|
- name: Hosts "{{ host1_fqdn }}" and "{{ host2_fqdn }}" are absent
|
|
ipahost:
|
|
hosts:
|
|
- name: "{{ host1_fqdn }}"
|
|
- name: "{{ host2_fqdn }}"
|
|
state: absent
|
|
|
|
- name: Ensure idview test1_idview, test2_idview and renamed_idview are absent
|
|
ipaidview:
|
|
name:
|
|
- test1_idview
|
|
- test2_idview
|
|
- renamed_idview
|
|
state: absent
|
|
|
|
# CREATE TEST ITEMS
|
|
|
|
- name: Hosts "{{ host1_fqdn }}" and "{{ host2_fqdn }}" are present
|
|
ipahost:
|
|
hosts:
|
|
- name: "{{ host1_fqdn }}"
|
|
force: true
|
|
- name: "{{ host2_fqdn }}"
|
|
force: true
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
# TESTS
|
|
|
|
- name: Ensure idview test1_idview is present
|
|
ipaidview:
|
|
name: test1_idview
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present again
|
|
ipaidview:
|
|
name: test1_idview
|
|
# Add needed parameters here
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure idview test2_idview is present
|
|
ipaidview:
|
|
name: test2_idview
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure idview test2_idview is present again
|
|
ipaidview:
|
|
name: test2_idview
|
|
# Add needed parameters here
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Rename test1_idview to renamed_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
rename: renamed_idview
|
|
state: renamed
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
# This task will fail as there is no idview to be renamed
|
|
- name: Rename test1_idview to renamed_idview, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
rename: renamed_idview
|
|
state: renamed
|
|
register: result
|
|
failed_when: result.changed or (not result.failed and "No idview 'test1_idview'" not in result.msg)
|
|
|
|
- name: Rename renamed_idview back to to test1_idview
|
|
ipaidview:
|
|
name: renamed_idview
|
|
rename: test1_idview
|
|
state: renamed
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with description
|
|
ipaidview:
|
|
name: test1_idview
|
|
description: "Test IDView"
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with description, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
description: "Test IDView"
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with empty description
|
|
ipaidview:
|
|
name: test1_idview
|
|
description: ""
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with empty description, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
description: ""
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with domain reolution order "{{ ipaserver_domain }}"
|
|
ipaidview:
|
|
name: test1_idview
|
|
domain_resolution_order: "{{ ipaserver_domain }}"
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with domain reolution order "{{ ipaserver_domain }}", again
|
|
ipaidview:
|
|
name: test1_idview
|
|
domain_resolution_order: "{{ ipaserver_domain }}"
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with empty domain reolution order
|
|
ipaidview:
|
|
name: test1_idview
|
|
domain_resolution_order: ""
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure idview test1_idview is present with empty domain reolution order, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
domain_resolution_order: ""
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is applied to idview test1_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is applied to idview test1_idview, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure invalid host "{{ host3_fqdn }}" fails to applied to idview test1_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host3_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: result.changed or not result.failed or
|
|
"Invalid host" not in result.msg or
|
|
host3_fqdn not in result.msg
|
|
|
|
- name: Ensure invalid host "{{ host3_fqdn }}" does not fail to unapply from idview test1_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host3_fqdn }}"
|
|
action: member
|
|
state: absent
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host2_fqdn }}" is applied to idview test1_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host2_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host2_fqdn }}" is applied to idview test1_idview, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host2_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure hosts "{{ host1_fqdn }}" and "{{ host1_fqdn }}" are applied to idview test1_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
- "{{ host2_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure hosts "{{ host1_fqdn }}" and "{{ host1_fqdn }}" are not applied to idview test1_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
- "{{ host2_fqdn }}"
|
|
action: member
|
|
state: absent
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure hosts "{{ host1_fqdn }}" and "{{ host1_fqdn }}" are not applied to idview test1_idview, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
- "{{ host2_fqdn }}"
|
|
action: member
|
|
state: absent
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is applied to idview test1_idview
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is applied to idview test1_idview, again
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is applied to idview test2_idview
|
|
ipaidview:
|
|
name: test2_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is applied to idview test2_idview, again
|
|
ipaidview:
|
|
name: test2_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is not applied to idview test1_idview anymore
|
|
ipaidview:
|
|
name: test1_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
state: absent
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is not applied to idview test2_idview
|
|
ipaidview:
|
|
name: test2_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
state: absent
|
|
register: result
|
|
failed_when: not result.changed or result.failed
|
|
|
|
- name: Ensure host "{{ host1_fqdn }}" is not applied to idview test2_idview, again
|
|
ipaidview:
|
|
name: test2_idview
|
|
host:
|
|
- "{{ host1_fqdn }}"
|
|
action: member
|
|
state: absent
|
|
register: result
|
|
failed_when: result.changed or result.failed
|
|
|
|
# CLEANUP TEST ITEMS
|
|
|
|
- name: Hosts "{{ host1_fqdn }}" and "{{ host2_fqdn }}" absent
|
|
ipahost:
|
|
hosts:
|
|
- name: "{{ host1_fqdn }}"
|
|
- name: "{{ host2_fqdn }}"
|
|
state: absent
|
|
|
|
- name: Ensure idview test1_idview, test2_idview and renamed_idview are absent
|
|
ipaidview:
|
|
name:
|
|
- test1_idview
|
|
- test2_idview
|
|
- renamed_idview
|
|
state: absent
|