Merge pull request #635 from rjeffman/ipaconfig_tests

ipaconfig: Prevent configuration issues due to test failure.
This commit is contained in:
Thomas Woerner
2021-09-24 15:13:35 +02:00
committed by GitHub

View File

@@ -7,6 +7,7 @@
tasks: tasks:
- include_tasks: ../env_freeipa_facts.yml - include_tasks: ../env_freeipa_facts.yml
- block:
# Retrieve current configuration. # Retrieve current configuration.
- name: return current values of the global configuration options - name: return current values of the global configuration options
ipaconfig: ipaconfig:
@@ -14,12 +15,12 @@
register: previousconfig register: previousconfig
- debug: - debug:
msg: "{{previousconfig}}" var: previousconfig
# setup environment. # setup environment.
- name: create test group - name: create test group
ipagroup: ipagroup:
ipaadmin_password: 'SomeADMINpassword' ipaadmin_password: SomeADMINpassword
name: somedefaultgroup name: somedefaultgroup
- name: Ensure the default e-mail domain is ipa.test. - name: Ensure the default e-mail domain is ipa.test.
@@ -249,14 +250,14 @@
- name: change enable_migration - name: change enable_migration
ipaconfig: ipaconfig:
ipaadmin_password: SomeADMINpassword ipaadmin_password: SomeADMINpassword
enable_migration: '{{ not previousconfig.config.enable_migration }}' enable_migration: '{{ not (previousconfig.config.enable_migration | bool) }}'
register: result register: result
failed_when: not result.changed or result.failed failed_when: not result.changed or result.failed
- name: change enable_migration, again - name: change enable_migration, again
ipaconfig: ipaconfig:
ipaadmin_password: SomeADMINpassword ipaadmin_password: SomeADMINpassword
enable_migration: '{{ not previousconfig.config.enable_migration }}' enable_migration: '{{ not (previousconfig.config.enable_migration | bool) }}'
register: result register: result
failed_when: result.changed or result.failed failed_when: result.changed or result.failed
@@ -332,27 +333,27 @@
- name: reset changed fields - name: reset changed fields
ipaconfig: ipaconfig:
ipaadmin_password: 'SomeADMINpassword' ipaadmin_password: SomeADMINpassword
maxusername: '{{previousconfig.config.maxusername | default(omit)}}' maxusername: '{{ previousconfig.config.maxusername | default(32) | int }}'
homedirectory: '{{previousconfig.config.homedirectory | default(omit)}}' homedirectory: '{{ previousconfig.config.homedirectory | default(omit) }}'
defaultshell: '{{previousconfig.config.defaultshell | default(omit)}}' defaultshell: '{{ previousconfig.config.defaultshell | default(omit) }}'
defaultgroup: '{{previousconfig.config.defaultgroup | default(omit)}}' defaultgroup: '{{ previousconfig.config.defaultgroup | default(omit) }}'
emaildomain: '{{previousconfig.config.emaildomain | default(omit)}}' emaildomain: '{{ previousconfig.config.emaildomain | default(omit) }}'
searchtimelimit: '{{previousconfig.config.searchtimelimit | default(omit)}}' searchtimelimit: '{{ previousconfig.config.searchtimelimit | default(2) | int }}'
searchrecordslimit: '{{previousconfig.config.searchrecordslimit | default(omit)}}' searchrecordslimit: '{{ previousconfig.config.searchrecordslimit | default(100) | int }}'
usersearch: '{{previousconfig.config.usersearch | default(omit)}}' usersearch: '{{ previousconfig.config.usersearch | default(omit) }}'
groupsearch: '{{previousconfig.config.groupsearch | default(omit)}}' groupsearch: '{{ previousconfig.config.groupsearch | default(omit) }}'
enable_migration: '{{previousconfig.config.enable_migration | default(omit)}}' enable_migration: '{{ previousconfig.config.enable_migration | default(False) | bool }}'
groupobjectclasses: '{{previousconfig.config.groupobjectclasses | default(omit)}}' groupobjectclasses: '{{ previousconfig.config.groupobjectclasses | default(omit) }}'
userobjectclasses: '{{previousconfig.config.userobjectclasses | default(omit)}}' userobjectclasses: '{{ previousconfig.config.userobjectclasses | default(omit) }}'
pwdexpnotify: '{{previousconfig.config.pwdexpnotify | default(omit)}}' pwdexpnotify: '{{ previousconfig.config.pwdexpnotify | default(4) | int }}'
configstring: '{{previousconfig.config.configstring | default(omit)}}' configstring: '{{ previousconfig.config.configstring | default(omit) }}'
selinuxusermapdefault: '{{previousconfig.config.selinuxusermapdefault | default(omit)}}' selinuxusermapdefault: '{{ previousconfig.config.selinuxusermapdefault | default(omit) }}'
selinuxusermaporder: '{{previousconfig.config.selinuxusermaporder | default(omit)}}' selinuxusermaporder: '{{ previousconfig.config.selinuxusermaporder | default(omit) }}'
pac_type: '{{previousconfig.config.pac_type | default(omit)}}' pac_type: '{{ previousconfig.config.pac_type | default(omit) }}'
user_auth_type: '{{previousconfig.config.user_auth_type | default(omit)}}' user_auth_type: '{{ previousconfig.config.user_auth_type | default(omit) }}'
domain_resolution_order: '{{previousconfig.config.domain_resolution_order | default(omit)}}' domain_resolution_order: '{{ previousconfig.config.domain_resolution_order | default(omit) }}'
ca_renewal_master_server: '{{previousconfig.config.ca_renewal_master_server | default(omit)}}' ca_renewal_master_server: '{{ previousconfig.config.ca_renewal_master_server | default(omit) }}'
register: result register: result
failed_when: not result.changed or result.failed failed_when: not result.changed or result.failed
@@ -360,32 +361,32 @@
block: block:
- ipaconfig: - ipaconfig:
ipaadmin_password: SomeADMINpassword ipaadmin_password: SomeADMINpassword
maxhostname: '{{previousconfig.config.maxhostname | default(omit)}}' maxhostname: '{{ previousconfig.config.maxhostname | default(omit) }}'
when: ipa_version is version('4.8.0', '>=') when: ipa_version is version('4.8.0', '>=')
- name: reset changed fields, again - name: reset changed fields, again
ipaconfig: ipaconfig:
ipaadmin_password: 'SomeADMINpassword' ipaadmin_password: SomeADMINpassword
maxusername: '{{previousconfig.config.maxusername | default(omit)}}' maxusername: '{{ previousconfig.config.maxusername | default(omit) | int }}'
homedirectory: '{{previousconfig.config.homedirectory | default(omit)}}' homedirectory: '{{ previousconfig.config.homedirectory | default(omit) }}'
defaultshell: '{{previousconfig.config.defaultshell | default(omit)}}' defaultshell: '{{ previousconfig.config.defaultshell | default(omit) }}'
defaultgroup: '{{previousconfig.config.defaultgroup | default(omit)}}' defaultgroup: '{{ previousconfig.config.defaultgroup | default(omit) }}'
emaildomain: '{{previousconfig.config.emaildomain | default(omit)}}' emaildomain: '{{ previousconfig.config.emaildomain | default(omit) }}'
searchtimelimit: '{{previousconfig.config.searchtimelimit | default(omit)}}' searchtimelimit: '{{ previousconfig.config.searchtimelimit | default(omit) | int }}'
searchrecordslimit: '{{previousconfig.config.searchrecordslimit | default(omit)}}' searchrecordslimit: '{{ previousconfig.config.searchrecordslimit | default(omit) | int }}'
usersearch: '{{previousconfig.config.usersearch | default(omit)}}' usersearch: '{{ previousconfig.config.usersearch | default(omit) }}'
groupsearch: '{{previousconfig.config.groupsearch | default(omit)}}' groupsearch: '{{ previousconfig.config.groupsearch | default(omit) }}'
enable_migration: '{{previousconfig.config.enable_migration | default(omit)}}' enable_migration: '{{ previousconfig.config.enable_migration | default(omit) | bool }}'
groupobjectclasses: '{{previousconfig.config.groupobjectclasses | default(omit)}}' groupobjectclasses: '{{ previousconfig.config.groupobjectclasses | default(omit) }}'
userobjectclasses: '{{previousconfig.config.userobjectclasses | default(omit)}}' userobjectclasses: '{{ previousconfig.config.userobjectclasses | default(omit) }}'
pwdexpnotify: '{{previousconfig.config.pwdexpnotify | default(omit)}}' pwdexpnotify: '{{ previousconfig.config.pwdexpnotify | default(omit) | int }}'
configstring: '{{previousconfig.config.configstring | default(omit)}}' configstring: '{{ previousconfig.config.configstring | default(omit) }}'
selinuxusermapdefault: '{{previousconfig.config.selinuxusermapdefault | default(omit)}}' selinuxusermapdefault: '{{ previousconfig.config.selinuxusermapdefault | default(omit) }}'
selinuxusermaporder: '{{previousconfig.config.selinuxusermaporder | default(omit)}}' selinuxusermaporder: '{{ previousconfig.config.selinuxusermaporder | default(omit) }}'
pac_type: '{{previousconfig.config.pac_type | default(omit)}}' pac_type: '{{ previousconfig.config.pac_type | default(omit) }}'
user_auth_type: '{{previousconfig.config.user_auth_type | default(omit)}}' user_auth_type: '{{ previousconfig.config.user_auth_type | default(omit) }}'
domain_resolution_order: '{{previousconfig.config.domain_resolution_order | default(omit)}}' domain_resolution_order: '{{ previousconfig.config.domain_resolution_order | default(omit) }}'
ca_renewal_master_server: '{{previousconfig.config.ca_renewal_master_server | default(omit)}}' ca_renewal_master_server: '{{ previousconfig.config.ca_renewal_master_server | default(omit) }}'
register: result register: result
failed_when: result.changed or result.failed failed_when: result.changed or result.failed
@@ -393,13 +394,42 @@
block: block:
- ipaconfig: - ipaconfig:
ipaadmin_password: SomeADMINpassword ipaadmin_password: SomeADMINpassword
maxhostname: '{{previousconfig.config.maxhostname | default(omit)}}' maxhostname: '{{ previousconfig.config.maxhostname | default(omit) }}'
when: ipa_version is version('4.8.0', '>=') when: ipa_version is version('4.8.0', '>=')
# cleanup rescue:
- name: Set fields to IPA default, due to error
ipaconfig:
ipaadmin_password: SomeADMINpassword
maxusername: '{{ previousconfig.config.maxusername | default(omit) | int }}'
homedirectory: '{{ previousconfig.config.homedirectory | default(omit) }}'
defaultshell: '{{ previousconfig.config.defaultshell | default(omit) }}'
defaultgroup: '{{ previousconfig.config.defaultgroup | default(omit) }}'
emaildomain: '{{ previousconfig.config.emaildomain | default(omit) }}'
searchtimelimit: '{{ previousconfig.config.searchtimelimit | default(omit) | int }}'
searchrecordslimit: '{{ previousconfig.config.searchrecordslimit | default(omit) | int }}'
usersearch: '{{ previousconfig.config.usersearch | default(omit) }}'
groupsearch: '{{ previousconfig.config.groupsearch | default(omit) }}'
enable_migration: '{{ previousconfig.config.enable_migration | default(omit) | bool }}'
groupobjectclasses: '{{ previousconfig.config.groupobjectclasses | default(omit) }}'
userobjectclasses: '{{ previousconfig.config.userobjectclasses | default(omit) }}'
pwdexpnotify: '{{ previousconfig.config.pwdexpnotify | default(omit) | int }}'
configstring: '{{ previousconfig.config.configstring | default(omit) }}'
selinuxusermapdefault: '{{ previousconfig.config.selinuxusermapdefault | default(omit) }}'
selinuxusermaporder: '{{ previousconfig.config.selinuxusermaporder | default(omit) }}'
pac_type: '{{ previousconfig.config.pac_type | default(omit) }}'
user_auth_type: '{{ previousconfig.config.user_auth_type | default(omit) }}'
domain_resolution_order: '{{ previousconfig.config.domain_resolution_order | default(omit) }}'
ca_renewal_master_server: '{{ previousconfig.config.ca_renewal_master_server | default(omit) }}'
register: result
- debug:
msg: "Due to a test failure, IPA CA-Renewal Server might not be correctly be set. Check your configuration."
always:
# cleanup
- name: cleanup test group - name: cleanup test group
ipagroup: ipagroup:
ipaadmin_password: 'SomeADMINpassword' ipaadmin_password: SomeADMINpassword
name: somedefaultgroup name: somedefaultgroup
state: absent state: absent