mirror of https://github.com/ansible/ansible.git
Change:
- Previously when `security: true` and `bugfix: true` were both given,
only security updates would get applied. Filters now accumulate so
that both get applied in this case.
Test Plan:
- New integration tests for both check_mode and not. These tests make
use of a contrived yum repository which is stored in S3.
Tickets:
- Fixes #70854
Signed-off-by: Rick Elrod <rick@elrod.me>
Co-authored-by: Matt Martz <matt@sivel.net>
Co-authored-by: Matt Martz <matt@sivel.net>
(cherry picked from commit fdf80690e4
)
pull/72345/head
parent
b9c8b79d60
commit
83c34eb7de
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "dnf - it is now possible to specify both ``security: true`` and ``bugfix: true`` to install updates of both types. Previously, only security would get installed if both were true. (https://github.com/ansible/ansible/issues/70854)"
|
@ -0,0 +1,134 @@
|
||||
# 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://ansible-ci-files.s3.amazonaws.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: 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'
|
||||
|
||||
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
|
@ -0,0 +1,110 @@
|
||||
# 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://ansible-ci-files.s3.amazonaws.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 (check_mode)
|
||||
dnf:
|
||||
name: '*'
|
||||
state: latest
|
||||
update_only: true
|
||||
disable_gpg_check: true
|
||||
check_mode: true
|
||||
register: update_no_filter
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- update_no_filter is changed
|
||||
- '"would have if not in check mode" in update_no_filter.msg'
|
||||
- '"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: Ask for pending updates with security=true (check_mode)
|
||||
dnf:
|
||||
name: '*'
|
||||
state: latest
|
||||
update_only: true
|
||||
disable_gpg_check: true
|
||||
security: true
|
||||
check_mode: true
|
||||
register: update_security
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- update_security is changed
|
||||
- '"would have if not in check mode" in update_security.msg'
|
||||
- '"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: Ask for pending updates with bugfix=true (check_mode)
|
||||
dnf:
|
||||
name: '*'
|
||||
state: latest
|
||||
update_only: true
|
||||
disable_gpg_check: true
|
||||
bugfix: true
|
||||
check_mode: true
|
||||
register: update_bugfix
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- update_bugfix is changed
|
||||
- '"would have if not in check mode" in update_bugfix.msg'
|
||||
- '"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: Ask for pending updates with bugfix=true and security=true (check_mode)
|
||||
dnf:
|
||||
name: '*'
|
||||
state: latest
|
||||
update_only: true
|
||||
disable_gpg_check: true
|
||||
bugfix: true
|
||||
security: true
|
||||
check_mode: true
|
||||
register: update_bugfix
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- update_bugfix is changed
|
||||
- '"would have if not in check mode" in update_bugfix.msg'
|
||||
- '"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'
|
||||
|
||||
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
|
Loading…
Reference in New Issue