Bug 1982753

Summary: Ansible variables are not imported from roles provided by a collection that is installed to /usr/share/ansible/collections
Product: Red Hat Satellite Reporter: Danny Synk <dsynk>
Component: Ansible - Configuration ManagementAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED ERRATA QA Contact: Danny Synk <dsynk>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.10.0CC: mhulan, oezr, oprazak, pcreech, smallamp
Target Milestone: 6.10.0Keywords: Triaged
Target Release: Unused   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: tfm-rubygem-smart_proxy_ansible-3.1.1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-16 14:12:34 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:

Description Danny Synk 2021-07-15 15:43:19 UTC
Description of problem:

When an Ansible Collection is installed on Satellite to /etc/ansible/collections and the roles from the collection are subsequently imported to Satellite, any Ansible Variables in those roles are also imported as expected. However, when an Ansible Collection is installed on Satellite to /usr/share/ansible/collections and the roles from the collection are subsequently imported to Satellite, no Ansible Variables in those roles are imported to Satellite.

Version-Release number of selected component (if applicable):
Satellite 6.10, snap 9
tfm-rubygem-foreman_ansible-6.3.1-1.el7sat.noarch

How reproducible:
100%

Steps to Reproduce:
1. Install the ovirt.ovirt collection to /usr/share/ansible/collections:

  # ansible-galaxy collection install -p /usr/share/ansible/collections/ ovirt.ovirt

2. On the Configure > Roles page of the Satellite webUI, click the "Import from satellite.example.com" button. 
3. Select all roles from the ovirt.ovirt collection and click the "Submit" button.
4. Navigate to the Configure > Variables page and observe the number of variables.
5. On the Configure > Roles page, delete all ovirt.ovirt roles.
6. Remove the ovirt.ovirt collection from the Satellite file system:

  # rm -rf /usr/share/ansible/collections/ansible_collections/ovirt/

7. Create the /etc/ansible/collections directory:

  # mkdir /etc/ansible/collections

8. Install the ovirt.ovirt collection to /etc/ansible/collections:

  # ansible-galaxy collection install -p /etc/ansible/collections/ ovirt.ovirt

9. On the Configure > Roles page of the Satellite webUI, click the "Import from satellite.example.com" button. 
10. Select all roles from the ovirt.ovirt collection and click the "Submit" button.
11. Navigate to the Configure > Variables page and observe the number of variables.


Actual results:

Installing the ovirt.ovirt collection to /usr/share/ansible/collections, then importing all roles from the collection imports zero Ansible variables. Installing the ovirt.ovirt collection to /etc/ansible/collections, then importing all roles from the collection imports 209 Ansible variables.  


Expected results:

Installing an Ansible Collection and importing the roles from that collection to Satellite imports the same number of variables, regardless of whether the collection was installed to /etc/ansible/collections/ or /usr/share/ansible/collections.

Comment 3 Bryan Kearney 2021-07-26 16:05:49 UTC
Upstream bug assigned to ymakias

Comment 4 Bryan Kearney 2021-07-26 16:05:51 UTC
Upstream bug assigned to ymakias

Comment 5 Bryan Kearney 2021-07-28 12:08:55 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/33133 has been resolved.

Comment 6 Danny Synk 2021-08-12 18:55:41 UTC
Steps to Test:
1. Install the ovirt.ovirt collection to /usr/share/ansible/collections:

  # ansible-galaxy collection install -p /usr/share/ansible/collections/ ovirt.ovirt

2. On the Configure > Roles page of the Satellite webUI, click the "Import from satellite.example.com" button. 
3. Select all roles from the ovirt.ovirt collection and click the "Submit" button.
4. Navigate to the Configure > Variables page and observe the number of variables.
5. On the Configure > Roles page, delete all ovirt.ovirt roles.
6. Remove the ovirt.ovirt collection from the Satellite file system:

  # rm -rf /usr/share/ansible/collections/ansible_collections/ovirt/

7. Create the /etc/ansible/collections directory:

  # mkdir /etc/ansible/collections

8. Install the ovirt.ovirt collection to /etc/ansible/collections:

  # ansible-galaxy collection install -p /etc/ansible/collections/ ovirt.ovirt

9. On the Configure > Roles page of the Satellite webUI, click the "Import from satellite.example.com" button. 
10. Select all roles from the ovirt.ovirt collection and click the "Submit" button.
11. Navigate to the Configure > Variables page and observe the number of variables.

Expected Results:
Installing an Ansible Collection and importing the roles from that collection to Satellite imports the same number of variables, regardless of whether the collection was installed to /etc/ansible/collections/ or /usr/share/ansible/collections.

Actual Results:
Installing an Ansible Collection and importing the roles from that collection to Satellite imports the same number of variables, regardless of whether the collection was installed to /etc/ansible/collections/ or /usr/share/ansible/collections.

Verified on Satellite 6.10, snap 13.

Comment 10 errata-xmlrpc 2021-11-16 14:12:34 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 (Moderate: Satellite 6.10 Release), 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/RHSA-2021:4702