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

This commit is contained in:
Pilou 2019-09-24 10:03:56 +02:00 committed by René Moser
parent 7d344d00ef
commit 278398555d
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

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

View file

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

View file

@ -73,3 +73,43 @@
- name: check for ansible_facts.packages exists - name: check for ansible_facts.packages exists
assert: assert:
that: ansible_facts.packages is defined 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"