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).
Created redmine issue https://projects.theforeman.org/issues/28859 from this bug
Upstream bug assigned to oezr
*** Bug 1777298 has been marked as a duplicate of this bug. ***
Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/28859 has been resolved.
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
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