|
|
|
# We have a test repo set up with a valid updateinfo.xml which is referenced
|
|
|
|
# from its repomd.xml.
|
|
|
|
- block:
|
|
|
|
- set_fact:
|
|
|
|
updateinfo_repo: https://ci-files.testing.ansible.com/test/integration/targets/setup_rpm_repo/repo-with-updateinfo
|
|
|
|
|
|
|
|
- name: Install the test repo
|
|
|
|
yum_repository:
|
|
|
|
name: test-repo-with-updateinfo
|
|
|
|
description: test-repo-with-updateinfo
|
|
|
|
baseurl: "{{ updateinfo_repo }}"
|
|
|
|
gpgcheck: no
|
|
|
|
|
|
|
|
- name: Install old versions of toaster and oven
|
|
|
|
dnf:
|
|
|
|
name:
|
|
|
|
- "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
- "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
disable_gpg_check: true
|
|
|
|
|
|
|
|
- name: Ask for pending updates
|
|
|
|
dnf:
|
|
|
|
name: '*'
|
|
|
|
state: latest
|
|
|
|
update_only: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
disablerepo: '*'
|
|
|
|
enablerepo: test-repo-with-updateinfo
|
|
|
|
register: update_no_filter
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- update_no_filter is changed
|
|
|
|
- '"Installed: toaster-1.2.3.5-1.el8.noarch" in update_no_filter.results'
|
|
|
|
- '"Installed: oven-1.2.3.5-1.el8.noarch" in update_no_filter.results'
|
|
|
|
- '"Removed: toaster-1.2.3.4-1.el8.noarch" in update_no_filter.results'
|
|
|
|
- '"Removed: oven-1.2.3.4-1.el8.noarch" in update_no_filter.results'
|
|
|
|
|
|
|
|
- name: Install old versions of toaster and oven
|
|
|
|
dnf:
|
|
|
|
name:
|
|
|
|
- "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
- "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
allow_downgrade: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
|
|
|
|
- name: Ask for pending updates with security=true
|
|
|
|
dnf:
|
|
|
|
name: '*'
|
|
|
|
state: latest
|
|
|
|
update_only: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
security: true
|
|
|
|
disablerepo: '*'
|
|
|
|
enablerepo: test-repo-with-updateinfo
|
|
|
|
register: update_security
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- update_security is changed
|
|
|
|
- '"Installed: toaster-1.2.3.5-1.el8.noarch" in update_security.results'
|
|
|
|
- '"Removed: toaster-1.2.3.4-1.el8.noarch" in update_security.results'
|
|
|
|
- '"Installed: oven-1.2.3.5-1.el8.noarch" not in update_security.results'
|
|
|
|
- '"Removed: oven-1.2.3.4-1.el8.noarch" not in update_security.results'
|
|
|
|
|
|
|
|
- name: Install old versions of toaster and oven
|
|
|
|
dnf:
|
|
|
|
name:
|
|
|
|
- "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
- "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
allow_downgrade: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
|
|
|
|
- name: Ask for pending updates with bugfix=true
|
|
|
|
dnf:
|
|
|
|
name: '*'
|
|
|
|
state: latest
|
|
|
|
update_only: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
bugfix: true
|
|
|
|
disablerepo: '*'
|
|
|
|
enablerepo: test-repo-with-updateinfo
|
|
|
|
register: update_bugfix
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- update_bugfix is changed
|
|
|
|
- '"Installed: toaster-1.2.3.5-1.el8.noarch" not in update_bugfix.results'
|
|
|
|
- '"Removed: toaster-1.2.3.4-1.el8.noarch" not in update_bugfix.results'
|
|
|
|
- '"Installed: oven-1.2.3.5-1.el8.noarch" in update_bugfix.results'
|
|
|
|
- '"Removed: oven-1.2.3.4-1.el8.noarch" in update_bugfix.results'
|
|
|
|
|
|
|
|
- name: Install old versions of toaster and oven
|
|
|
|
dnf:
|
|
|
|
name:
|
|
|
|
- "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
- "{{ updateinfo_repo }}/oven-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
allow_downgrade: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
|
|
|
|
- name: Verify toaster is not upgraded with state=installed
|
|
|
|
dnf:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: installed
|
|
|
|
register: installed
|
|
|
|
loop:
|
|
|
|
- toaster
|
|
|
|
- toaster.noarch
|
|
|
|
- toaster-1.2.3.4-1.el8.noarch
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that: "installed.results | map(attribute='changed') is not any"
|
|
|
|
|
|
|
|
- name: Ask for pending updates with bugfix=true and security=true
|
|
|
|
dnf:
|
|
|
|
name: '*'
|
|
|
|
state: latest
|
|
|
|
update_only: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
bugfix: true
|
|
|
|
security: true
|
|
|
|
disablerepo: '*'
|
|
|
|
enablerepo: test-repo-with-updateinfo
|
|
|
|
register: update_bugfix
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- update_bugfix is changed
|
|
|
|
- '"Installed: toaster-1.2.3.5-1.el8.noarch" in update_bugfix.results'
|
|
|
|
- '"Removed: toaster-1.2.3.4-1.el8.noarch" in update_bugfix.results'
|
|
|
|
- '"Installed: oven-1.2.3.5-1.el8.noarch" in update_bugfix.results'
|
|
|
|
- '"Removed: oven-1.2.3.4-1.el8.noarch" in update_bugfix.results'
|
|
|
|
|
|
|
|
- name: Install old version of toaster again
|
|
|
|
dnf:
|
|
|
|
name: "{{ updateinfo_repo }}/toaster-1.2.3.4-1.el8.noarch.rpm"
|
|
|
|
allow_downgrade: true
|
|
|
|
disable_gpg_check: true
|
|
|
|
|
|
|
|
- name: Verify toaster is upgraded with state=latest
|
|
|
|
dnf:
|
|
|
|
name: toaster.noarch
|
|
|
|
state: latest
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that: result.changed
|
|
|
|
|
|
|
|
always:
|
|
|
|
- name: Remove installed packages
|
|
|
|
dnf:
|
|
|
|
name:
|
|
|
|
- toaster
|
|
|
|
- oven
|
|
|
|
state: absent
|
|
|
|
|
|
|
|
- name: Remove the repo
|
|
|
|
yum_repository:
|
|
|
|
name: test-repo-with-updateinfo
|
|
|
|
state: absent
|
|
|
|
tags:
|
|
|
|
- filters
|