---
- name: Test host bool parameters
  hosts: ipaserver
  become: true

  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 .. host6_fqdn
    ansible.builtin.set_fact:
      host1_fqdn: "{{ 'host1.' + ipaserver_domain }}"

  - name: Host absent
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name:
      - "{{ host1_fqdn }}"
      update_dns: yes
      state: absent

  - name: Host "{{ host1_fqdn }}" present with requires_pre_auth, ok_as_delegate and ok_to_auth_as_delegate
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      force: yes
      requires_pre_auth: yes
      ok_as_delegate: yes
      ok_to_auth_as_delegate: yes
    register: result
    failed_when: not result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with requires_pre_auth, ok_as_delegate and ok_to_auth_as_delegate again
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      requires_pre_auth: yes
      ok_as_delegate: yes
      ok_to_auth_as_delegate: yes
    register: result
    failed_when: result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with requires_pre_auth, ok_as_delegate and ok_to_auth_as_delegate set to no
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      requires_pre_auth: no
      ok_as_delegate: no
      ok_to_auth_as_delegate: no
    register: result
    failed_when: not result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with requires_pre_auth, ok_as_delegate and ok_to_auth_as_delegate set to no again
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      requires_pre_auth: no
      ok_as_delegate: no
      ok_to_auth_as_delegate: no
    register: result
    failed_when: result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with requires_pre_auth
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      requires_pre_auth: yes
    register: result
    failed_when: not result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with requires_pre_auth again
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      requires_pre_auth: yes
    register: result
    failed_when: result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with ok_as_delegate
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      ok_as_delegate: yes
    register: result
    failed_when: not result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with ok_as_delegate again
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      ok_as_delegate: yes
    register: result
    failed_when: result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with ok_to_auth_as_delegate
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      ok_to_auth_as_delegate: yes
    register: result
    failed_when: not result.changed or result.failed

  - name: Host "{{ host1_fqdn }}" present with ok_to_auth_as_delegate again
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name: "{{ host1_fqdn }}"
      ok_to_auth_as_delegate: yes
    register: result
    failed_when: result.changed or result.failed

  - name: Host absent
    ipahost:
      ipaadmin_password: SomeADMINpassword
      name:
      - "{{ host1_fqdn }}"
      update_dns: yes
      state: absent
