# test code for the dnf module
# (c) 2014, James Tanner <tanner.jc@gmail.com>

# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.

# Note: We install the yum package onto Fedora so that this will work on dnf systems
# We want to test that for people who don't want to upgrade their systems.

- include_tasks: dnf.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('23', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))

- include_tasks: filters_check_mode.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('23', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))
  tags:
    - filters

- include_tasks: filters.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('23', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))
  tags:
    - filters

- include_tasks: gpg.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('23', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))

- include_tasks: repo.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('23', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))

- include_tasks: dnfinstallroot.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('23', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))

# Attempting to install a different RHEL release in a tmpdir doesn't work (rhel8 beta)
- include_tasks: dnfreleasever.yml
  when:
    - ansible_distribution == 'Fedora'
    - ansible_distribution_major_version is version('23', '>=')

- include_tasks: modularity.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('29', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))

- include_tasks: logging.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('31', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))

# TODO: Construct our own instance where 'nobest' applies, so we can stop using
#       a third-party repo to test this behavior.
- include_tasks: nobest.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('24', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))

- include_tasks: cacheonly.yml
  when: (ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('23', '>=')) or
        (ansible_distribution in ['RedHat', 'CentOS'] and ansible_distribution_major_version is version('8', '>='))
