Skip to content

Commit

Permalink
package_facts: check 'vital' and 'automated' values ('pkg' manager) (#…
Browse files Browse the repository at this point in the history
…62766) (#62825)

(cherry picked from commit 2783985)
  • Loading branch information
pilou- authored and nitzmahone committed Nov 12, 2019
1 parent 3a5bd5b commit 5ca92a8
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 3 deletions.
@@ -0,0 +1,2 @@
bugfixes:
- "package_facts - fix value of ``vital`` attribute which is returned when ``pkg`` manager is used"
4 changes: 2 additions & 2 deletions lib/ansible/modules/packaging/os/package_facts.py
Expand Up @@ -292,7 +292,7 @@ def get_package_details(self, package):
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]
Expand All @@ -309,7 +309,7 @@ def get_package_details(self, package):
pkg['revision'] = '0'

if 'vital' in pkg:
pkg['vital'] = bool(pkg['vital'])
pkg['vital'] = bool(int(pkg['vital']))

return pkg

Expand Down
1 change: 0 additions & 1 deletion test/integration/targets/package_facts/aliases
@@ -1,3 +1,2 @@
shippable/posix/group3
skip/freebsd
skip/osx
40 changes: 40 additions & 0 deletions test/integration/targets/package_facts/tasks/main.yml
Expand Up @@ -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"

0 comments on commit 5ca92a8

Please sign in to comment.