Bug 2100559

Summary: network role should support running tests with ANSIBLE_GATHERING=explicit
Product: Red Hat Enterprise Linux 9 Reporter: Rich Megginson <rmeggins>
Component: rhel-system-rolesAssignee: Rich Megginson <rmeggins>
Status: CLOSED ERRATA QA Contact: Jon Trossbach <jtrossba>
Severity: medium Docs Contact:
Priority: low    
Version: 9.0CC: jtrossba, rhel-cs-system-management-subsystem-qe, sfaye, spetrosi, wenliang
Target Milestone: rcKeywords: Triaged
Target Release: 9.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: role:network
Fixed In Version: rhel-system-roles-1.21.0-0.15.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: 2100558
: 2162788 (view as bug list) Environment:
Last Closed: 2023-05-09 07:37:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2078989, 2078999, 2079008, 2100558    
Bug Blocks: 2079009, 2162788    

Description Rich Megginson 2022-06-23 17:19:51 UTC
+++ This bug was initially created as a clone of Bug #2100558 +++

+++ This bug was initially created as a clone of Bug #2078999 +++

+++ This bug was initially created as a clone of Bug #2078989 +++

Description of problem:
Some users use `gather_facts: false` in their playbooks, due to performance issues with fact gathering, or other reasons.  However, this breaks the metrics role because it requires some sort of facts like `os_family`, `distribution`, etc. to be defined.  The role should work if fact gathering is disabled in the playbook.

NOTE: This may require the user to enable fact caching, or simply not use the metrics role if it is not possible to use fact gathering at all.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Rich Megginson on 2022-04-26 16:41:29 UTC ---

Ansible by default will always gather facts in playbooks.  In order to test, you can use https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-gathering to disable fact gathering by default.

e.g. 

ANSIBLE_GATHERING=explicit ansible-playbook .... tests/tests_name.yml


Even though the network role should support being run with "gather_facts: false" in the playbook, almost all of the tests fail when using ANSIBLE_GATHERING=explicit, so it is difficult to verify that the role is indeed working with fact gathering disabled.

If we change all of the tests that fail to use "gather_facts: true", then the tests pass, but we have then masked the problem, and we are not actually verifying that the role will work when customers use "gather_facts: false" in their playbooks.

I guess the best we can do is ensure that there are at least some non-trivial network role tests that can be run with ANSIBLE_GATHERING=explicit that do not just use "gather_facts: true" inside the test.

Comment 9 Jon Trossbach 2023-02-12 17:40:05 UTC
I ran this against what is likely a non-trivial enough use case for "gather_facts: false", i.e. tests/network_tests_auto_gateway_initscripts.yml. It passed for both 2.9 and the latest Ansible.

However, I think this speaks to a broader thing I will speak to David Jez about. Namely, we need his pipeline to get this case coverered for the relevant tests.

Comment 12 errata-xmlrpc 2023-05-09 07:37:53 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (rhel-system-roles bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2023:2246