Bug 1802631

Summary: Importing Ansible variables yields NoMethodError: undefined method `map' for nil:NilClass (initialize_variables) [variables_importer.rb]
Product: Red Hat Satellite Reporter: Jaroslav Krajicek <jkrajice>
Component: Ansible - Configuration ManagementAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED ERRATA QA Contact: Lukas Pramuk <lpramuk>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.6.0CC: b.prins, dchaudha, egolov, jbhatia, ktordeur, mhulan, oprazak, patalber, rbertolj, saydas
Target Milestone: 6.8.0Keywords: Triaged
Target Release: Unused   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: tfm-rubygem-foreman_ansible-4.0.4 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-10-27 13:00:29 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:
Attachments:
Description Flags
Full trace of NoMethodError variables_importer.rb none

Description Jaroslav Krajicek 2020-02-13 15:12:10 UTC
Created attachment 1662979 [details]
Full trace of NoMethodError variables_importer.rb

Description of problem:

`Satellite WebUI -> Configure -> Ansible -> Variables -> Import`
fails with below mentioned error


Version-Release number of selected component (if applicable):
satellite-6.6.0-7.el7sat.noarch


How reproducible:
Unable to reproduce in lab on Satellite 6.6
System with issue upgraded from 6.4


Actual results:
(Full trace attached as file)
~~~
NoMethodError
undefined method `map' for nil:NilClass
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman_ansible-3.0.7.1/app/services/foreman_ansible/variables_importer.rb:48:in `initialize_variables'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman_ansible-3.0.7.1/app/services/foreman_ansible/variables_importer.rb:34:in `block in import_variables'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman_ansible-3.0.7.1/app/services/foreman_ansible/variables_importer.rb:31:in `each'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman_ansible-3.0.7.1/app/services/foreman_ansible/variables_importer.rb:31:in `map'
...
...
~~~


Expected results:
Successful import of Ansible variables `foreman_scap_client_server, foreman_scap_client_port, foreman_scap_client_policies`


Additional info:
Original issue that the customer seemed to hit:
https://bugzilla.redhat.com/show_bug.cgi?id=1753313
foreman-debug output attached to the case 02581501

Comment 3 Ondřej Pražák 2020-02-14 06:59:03 UTC
Connecting redmine issue https://projects.theforeman.org/issues/28578 from this bug

Comment 4 Bryan Kearney 2020-02-14 07:03:26 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/28578 has been resolved.

Comment 5 Brad Buckingham 2020-02-26 17:15:13 UTC
*** Bug 1800716 has been marked as a duplicate of this bug. ***

Comment 7 Lukas Pramuk 2020-08-31 13:47:46 UTC
VERIFIED.

@Satellite 6.8.0 Snap12
tfm-rubygem-foreman_ansible-5.1.1-1.el7sat.noarch

by the following manual reproducer:

1) Create a bogus role 'foo'

# touch /usr/share/ansible/roles/foo

2) Import the role 'foo'

# hammer ansible roles import --proxy-id 1 --role-names foo
Result:   
  The following ansible roles were changed
Imported: 
 1) foo

3) Import ansible variables (for the role 'foo')

REPRO:

# hammer ansible variables import --proxy-id 1
Could not import variables:
  Internal Server Error: the server was unable to finish the request. This may be caused by unavailability of some required service, incorrect API call or a server-side bug. There may be more information in the server's logs.

vs.

FIX:

# hammer ansible variables import --proxy-id 1
Result: 
  No changes in ansible variables detected.

>>> if there is bogus role then ansible variables import is not failing on that

Comment 10 errata-xmlrpc 2020-10-27 13:00:29 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 (Important: Satellite 6.8 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-2020:4366