Bug 1777293 - When importing multiple ansible role variables in satellite that have the same variable name, they are silently overwritten.
Summary: When importing multiple ansible role variables in satellite that have the sam...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Ansible - Configuration Management
Version: 6.6.0
Hardware: x86_64
OS: Linux
high
high
Target Milestone: 6.9.0
Assignee: Ondřej Ezr
QA Contact: Lukas Pramuk
URL:
Whiteboard:
: 1777298 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-27 10:48 UTC by Francisco Peralta
Modified: 2024-03-25 15:32 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1933160 (view as bug list)
Environment:
Last Closed: 2021-04-21 13:12:13 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 28859 0 High Closed When importing multiple ansible role variables in satellite that have the same variable name, they are silently overwrit... 2021-02-16 15:18:23 UTC

Description Francisco Peralta 2019-11-27 10:48:55 UTC
Description of problem:

If you try to import some ansible roles in satellite 6.6 that contain the same variable name the GUI will not warn nor give an error but silently import the variables and the last imported variable with the same name wins.


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

Satellite 6.6.0

How reproducible:

1. Create two roles that have a default variable with the same name.
2. Import them: only the last variable will be visible/used in the GUI.

Actual results:

Only the last imported variable with the same name will be present/used.

Expected results:

We would expect that the two or more variables would be considered locally to the related role (so not overwriting each other) or at least have a warning message for the user to know that he just overwrote a variable with another in two roles (he could eventually rename them and reimport them again)

Additional info:

If roles are developed by different teams or as often is the case imported from galaxy or the comunity you cannot be sure or enforce that the variable name will be unique for *all* roles, thus you should foresee this and avoid them to be global, but local to the rule or at least give a warning to take countermeasures by using best practices in variable naming (prefixing with role name etc).

Comment 6 Tomer Brisker 2020-01-26 15:26:06 UTC
Created redmine issue https://projects.theforeman.org/issues/28859 from this bug

Comment 8 Bryan Kearney 2020-03-12 10:04:09 UTC
Upstream bug assigned to oezr

Comment 9 Bryan Kearney 2020-03-12 10:04:24 UTC
Upstream bug assigned to oezr

Comment 10 Ondřej Ezr 2020-03-12 22:45:55 UTC
*** Bug 1777298 has been marked as a duplicate of this bug. ***

Comment 14 Bryan Kearney 2020-04-22 20:18:42 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/28859 has been resolved.

Comment 20 Lukas Pramuk 2021-03-11 12:11:56 UTC
VERIFIED.

@Satellite 6.9.0 Snap16
tfm-rubygem-foreman_ansible-6.1.1-1.el7sat.noarch

by the following reproducer:


1) Install any role from galaxy
# ansible-galaxy install -p /etc/ansible/roles adriagalin.motd

2) Import the role and its variables
# hammer ansible roles import --proxy-id 1
# hammer ansible variables import --proxy-id 1

3) Craft a role with duplicate variable names to be imported
# cp -r /etc/ansible/roles/adriagalin.motd /etc/ansible/roles/lpramuk.motd

4) Import the crafted role and its variables
# hammer ansible roles import --proxy-id 1
# hammer ansible variables import --proxy-id 1

5) Check the imported variables
# hammer ansible variables list --search ag_motd
----|-----------------------------|----------------------------------------------------------------------------------|---------|----------------
ID  | VARIABLE                    | DEFAULT VALUE                                                                    | TYPE    | ROLE           
----|-----------------------------|----------------------------------------------------------------------------------|---------|----------------
117 | ag_motd_add_footer          | false                                                                            | boolean | adriagalin.motd
163 | ag_motd_add_footer          | false                                                                            | boolean | lpramuk.motd   
167 | ag_motd_content             |                                                                                  | string  | lpramuk.motd   
121 | ag_motd_content             |                                                                                  | string  | adriagalin.motd
166 | ag_motd_info                | [{" FQDN:    "=>"{{ ansible_fqdn }}"}, {" Distro:  "=>"{{ ansible_distributio... | array   | lpramuk.motd   
120 | ag_motd_info                | [{"FQDN: "=>"{{ ansible_fqdn }}"}, {"  OS: "=>"{{ ansible_distribution }}"}]     | array   | adriagalin.motd
119 | ag_motd_sysadmins_email     | random                                                                | string  | adriagalin.motd
165 | ag_motd_sysadmins_email     | random                                                                | string  | lpramuk.motd   
118 | ag_motd_sysadmins_signature | Random system administrators                                                     | string  | adriagalin.motd
164 | ag_motd_sysadmins_signature | Random system administrators                                                     | string  | lpramuk.motd   
----|-----------------------------|----------------------------------------------------------------------------------|---------|----------------

>>> every variable is listed twice, one variable per each role -> duplicate variables in different roles are no longer overwritten

Comment 23 errata-xmlrpc 2021-04-21 13:12:13 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.9 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:1313


Note You need to log in before you can comment on or make changes to this bug.