# FUTURE - look at including AppStream support in our local repo
- name: Include distribution specific variables
  include_vars: "{{ item }}"
  with_first_found:
    - files:
        - "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
        - "{{ ansible_facts.distribution }}.yml"
      paths: ../vars

- name: install "{{ astream_name }}" module
  dnf:
    name: "{{ astream_name }}"
    state: present
  register: dnf_result

- name: verify installation of "{{ astream_name }}" module
  assert:
    that:
        - "not dnf_result.failed"
        - "dnf_result.changed"

- name: install "{{ astream_name }}" module again
  dnf:
    name: "{{ astream_name }}"
    state: present
  register: dnf_result

- name: verify installation of "{{ astream_name }}" module again
  assert:
    that:
        - "not dnf_result.failed"
        - "not dnf_result.changed"

- name: uninstall "{{ astream_name }}" module
  dnf:
    name: "{{ astream_name }}"
    state: absent
  register: dnf_result

- name: verify uninstallation of "{{ astream_name }}" module
  assert:
    that:
        - "not dnf_result.failed"
        - "dnf_result.changed"

- name: uninstall "{{ astream_name }}" module again
  dnf:
    name: "{{ astream_name }}"
    state: absent
  register: dnf_result

- name: verify uninstallation of "{{ astream_name }}" module again
  assert:
    that:
        - "not dnf_result.failed"
        - "not dnf_result.changed"

- name: install "{{ astream_name_no_stream }}" module without providing stream
  dnf:
    name: "{{ astream_name_no_stream }}"
    state: present
  register: dnf_result

- name: verify installation of "{{ astream_name_no_stream }}" module without providing stream
  assert:
    that:
        - "not dnf_result.failed"
        - "dnf_result.changed"

- name: install "{{ astream_name_no_stream }}" module again without providing stream
  dnf:
    name: "{{ astream_name_no_stream }}"
    state: present
  register: dnf_result

- name: verify installation of "{{ astream_name_no_stream }}" module again without providing stream
  assert:
    that:
        - "not dnf_result.failed"
        - "not dnf_result.changed"

- name: uninstall "{{ astream_name_no_stream }}" module without providing stream
  dnf:
    name: "{{ astream_name_no_stream }}"
    state: absent
  register: dnf_result

- name: verify uninstallation of "{{ astream_name_no_stream }}" module without providing stream
  assert:
    that:
        - "not dnf_result.failed"
        - "dnf_result.changed"

- name: uninstall "{{ astream_name_no_stream }}" module again without providing stream
  dnf:
    name: "{{ astream_name_no_stream }}"
    state: absent
  register: dnf_result

- name: verify uninstallation of "{{ astream_name_no_stream }}" module again without providing stream
  assert:
    that:
        - "not dnf_result.failed"
        - "not dnf_result.changed"