community.general/tests/integration/targets/dnf_versionlock/tasks/lock_updates.yml

73 lines
1.7 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
- name: Check packages with updates
dnf:
list: updates
register: updates
- name: Set local facts
set_fact:
_packages: "{{ (updates.results | map(attribute='name') | list)[:5] }}"
- debug:
msg:
- "The packages to be locked and unlocked are: {{ _packages}}"
- block:
- name: Clear locklist
community.general.dnf_versionlock:
state: clean
register: clear_locklist
- assert:
that:
- clear_locklist.locklist_post | length == 0
- name: Lock packages with updates
dnf_versionlock:
name: "{{ _packages }}"
state: present
register: lock_packages
- assert:
that:
- lock_packages is changed
- (lock_packages.locklist_post | length) <= (_packages | length)
- name: Update packages with updates while locked
command: >-
dnf update -y
--setopt=obsoletes=0 {{ _packages | join(' ') }}
args:
warn: false
register: update_locked_packages
changed_when: '"Nothing to do" not in update_locked_packages.stdout'
- assert:
that:
- update_locked_packages is not changed
- name: Unlock packages with updates
dnf_versionlock:
name: "{{ _packages }}"
state: absent
register: unlock_packages
- assert:
that:
- unlock_packages is changed
- unlock_packages.locklist_post | length == 0
- name: Update packages
dnf:
name: "{{ _packages }}"
state: latest
check_mode: yes
register: update_packages
- assert:
that:
- update_packages is changed
when: updates.results | length > 0
...