package_facts: check 'vital' and 'automated' values ('pkg' manager) (#62766) (#62825)

(cherry picked from commit 278398555d)
This commit is contained in:
Pilou 2019-11-12 20:01:37 +00:00 committed by Matt Davis
parent 3a5bd5be18
commit 5ca92a848c
4 changed files with 44 additions and 3 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- "package_facts - fix value of ``vital`` attribute which is returned when ``pkg`` manager is used"

View file

@ -292,7 +292,7 @@ class PKG(CLIMgr):
pass
if 'automatic' in pkg:
pkg['automatic'] = bool(pkg['automatic'])
pkg['automatic'] = bool(int(pkg['automatic']))
if 'category' in pkg:
pkg['category'] = pkg['category'].split('/', 1)[0]
@ -309,7 +309,7 @@ class PKG(CLIMgr):
pkg['revision'] = '0'
if 'vital' in pkg:
pkg['vital'] = bool(pkg['vital'])
pkg['vital'] = bool(int(pkg['vital']))
return pkg

View file

@ -1,3 +1,2 @@
shippable/posix/group3
skip/freebsd
skip/osx

View file

@ -73,3 +73,43 @@
- name: check for ansible_facts.packages exists
assert:
that: ansible_facts.packages is defined
- name: Run package_fact tests - FreeBSD
block:
- name: Gather package facts
package_facts:
manager: pkg
- name: check for ansible_facts.packages exists
assert:
that: ansible_facts.packages is defined
- name: check there is at least one package not flagged vital nor automatic
command: pkg query -e "%a = 0 && %V = 0" %n
register: not_vital_nor_automatic
failed_when: not not_vital_nor_automatic.stdout
- vars:
pkg_name: "{{ not_vital_nor_automatic.stdout_lines[0].strip() }}"
block:
- name: check the selected package is not vital
assert:
that:
- 'not ansible_facts.packages[pkg_name][0].vital'
- 'not ansible_facts.packages[pkg_name][0].automatic'
- name: flag the selected package as vital and automatic
command: 'pkg set --yes -v 1 -A 1 {{ pkg_name }}'
- name: Gather package facts (again)
package_facts:
- name: check the selected package is flagged vital and automatic
assert:
that:
- 'ansible_facts.packages[pkg_name][0].vital|bool'
- 'ansible_facts.packages[pkg_name][0].automatic|bool'
always:
- name: restore previous flags for the selected package
command: 'pkg set --yes -v 0 -A 0 {{ pkg_name }}'
when: ansible_os_family == "FreeBSD"