# make a installroot
- name: Create installroot
  command: mktemp -d "{{ remote_tmp_dir }}/ansible.test.XXXXXX"
  register: dnfroot

- name: Make a necessary directory
  file:
    path: "/{{ dnfroot.stdout }}/etc/dnf/vars/"
    state: directory
    mode: 0755

- name: Populate directory
  copy:
    # We need '8' for CentOS, but '8.x' for RHEL.
    content: "{{ ansible_distribution_version|int if ansible_distribution != 'RedHat' else ansible_distribution_version }}\n"
    dest: "/{{ dnfroot.stdout }}/etc/dnf/vars/releasever"

# This will drag in > 200 MB.
- name: attempt installroot
  dnf: name=sos installroot="/{{ dnfroot.stdout }}/" disable_gpg_check=yes
  register: dnf_result

- name: check sos with rpm in installroot
  shell: rpm -q sos --root="/{{ dnfroot.stdout }}/"
  failed_when: False
  register: rpm_result

- debug: var=dnf_result
- debug: var=rpm_result

- name: verify installation of sos in installroot
  assert:
    that:
        - "not dnf_result.failed | default(False)"
        - "dnf_result.changed"
        - "rpm_result.rc == 0"

- name: verify dnf module outputs in /
  assert:
    that:
        - "'changed' in dnf_result"
        - "'results' in dnf_result"

- name: cleanup installroot
  file:
    path: "/{{ dnfroot.stdout }}/"
    state: absent
