Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1364544

Summary: Discovery auto provisioning fails in Satellite 6.2 (undefined method path for media)
Product: Red Hat Satellite Reporter: sthirugn <sthirugn>
Component: Content ViewsAssignee: Lukas Zapletal <lzap>
Status: CLOSED ERRATA QA Contact: Sachin Ghai <sghai>
Severity: high Docs Contact:
Priority: urgent    
Version: 6.2.0CC: aupadhye, bkearney, dgupte, dmoessne, dnagarat, lzap, mmccune, sghai
Target Milestone: UnspecifiedKeywords: Regression, Reopened
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/16063
Whiteboard:
Fixed In Version: rubygem-katello-3.0.0.86-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-12 17:12:17 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:    
Bug Blocks: 1319283, 1394363    
Attachments:
Description Flags
production.log
none
discovery_failure none

Description sthirugn@redhat.com 2016-08-05 16:31:07 UTC
Created attachment 1187973 [details]
production.log

Description of problem:
Discovery auto provisioning fails

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

How reproducible:
Always

Steps to Reproduce:
1. Setup a hostgroup and configure all required settings including PuppetCA, Puppet Master
2. Setup rules for autoprovisioning of discovered hosts
2. Automatically discover/provision a host via PXE

Actual results:
Error as shown in the attachment - production.log

Expected results:


Additional info:

Comment 1 sthirugn@redhat.com 2016-08-05 16:32:18 UTC
Created attachment 1187974 [details]
discovery_failure

Comment 2 sthirugn@redhat.com 2016-08-05 16:33:06 UTC
error:
2016-08-05 12:32:10 [app] [W] Fetch TFTP boot files for <hostname> task failed with the following error: undefined method `path' for nil:NilClass
 | NoMethodError: undefined method `path' for nil:NilClass
 | /usr/share/foreman/app/models/operatingsystem.rb:121:in `medium_uri'

Comment 6 Lukas Zapletal 2016-08-09 06:18:03 UTC
This is not a bug in discovery or our code. It's misconfiguration on your instance. Media is not available, check your hostgroup, try to provision a host via PXE first.

We should not raise this ugly error and give nicer error dialog instead, we are tracking this as a low priority ticket:

http://projects.theforeman.org/issues/16014

Comment 7 sthirugn@redhat.com 2016-08-09 16:32:38 UTC
@lzap: The hostgroup has the Media associated to it.  I did not mention this in the bug but I was also able to provision a new host using this hostgroup via UI.


Installation Media info:

Name: Default_Organization/Library/Red_Hat_Server/Red_Hat_Enterprise_Linux_7_Server_Kickstart_x86_64_7_2

Path: http://$host/pulp/repos/Default_Organization/Library/content/dist/rhel/server/7/7.2/x86_64/kickstart/

Operating System Family: Red Hat

Locations: Default Location

Organization: Default Organization

Comment 8 Lukas Zapletal 2016-08-10 06:28:01 UTC
Is the media in correct taxonomy? Can you give me access to the box? Please ping me on IRC.

Comment 10 Lukas Zapletal 2016-08-11 12:48:11 UTC
I apologize, this looked like a clear case as we haven't changed any code in regard to auto-provisioning, but it's a regression introduced by ContentFacet - changes in core and Katello plugin towards host unification.

Blocker bug, z-stream, and solution will be challenging.

Comment 12 Bryan Kearney 2016-08-12 18:17:33 UTC
Upstream bug assigned to lzap

Comment 14 Lukas Zapletal 2016-09-06 12:10:03 UTC
This is 6.2 regression, high impact, we are working on a fix.

Comment 16 Lukas Zapletal 2016-10-18 11:21:02 UTC
WORKAROUND PATCH:

--- /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-5.0.0.9/app/controllers/concerns/foreman/controller/discovered_extensions.rb.org    2016-10-18 13:20:07.108052846 +0200
+++ /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-5.0.0.9/app/controllers/concerns/foreman/controller/discovered_extensions.rb        2016-10-18 13:15:27.838908657 +0200
@@ -57,6 +57,12 @@
     # explicitly set all inheritable attributes from hostgroup
     host.attributes = host.apply_inherited_attributes(hostgroup_id: rule.hostgroup_id)
     host.set_hostgroup_defaults
+    # fix katello content facet
+    host.build_content_facet(
+        :kickstart_repository_id => rule.hostgroup.inherited_kickstart_repository_id,
+        :content_source_id => rule.hostgroup.content_source_id,
+        :content_view_id => rule.hostgroup.content_view_id,
+        :lifecycle_environment_id => rule.hostgroup.lifecycle_environment_id)
     # save! does not work here
     host.save ? host : false
   end

Comment 18 Bryan Kearney 2016-10-18 14:11:54 UTC
Upstream bug component is Content Views

Comment 19 Bryan Kearney 2016-11-01 02:09:29 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/16063 has been resolved.

Comment 21 Lukas Zapletal 2016-11-03 09:25:24 UTC
I guess it's correct now. Thanks.

Comment 23 Lukas Zapletal 2016-11-03 13:07:18 UTC
HOTFIX FOR 6.2.2 AVAILABLE AT:

http://people.redhat.com/~lzapleta/hotfix/content-autoprovisioning-satellite-6.2.2-1364544/

Customers should not upgrade to 6.2.3 as the official fix is scheduled for 6.2.4.

Comment 24 Mike McCune 2016-11-17 21:25:41 UTC
HOTFIX FOR 6.2.4 AVAILABLE AT:

http://people.redhat.com/~mmccune/hotfix/1364544/

install via the rpm or yum command and run 'katello-service restart'

Comment 26 Sachin Ghai 2016-12-01 13:20:57 UTC
Verified with sat6.2.5 snap1.

auto provisioning works fine with pxe and pxe-less provisioning. I tried both ways:

1. enabled auto-provisioning from settings and define a discovery-rule for auto-provisioning
2. discovered a host via pxe.
3. auto-provisioning started as as soon as host get discovered.
4. host was successfully provisioned.

same steps performed with pxe-less(iso) discovery and auto-prov works via kexec.

-------
2016-12-01 08:16:05 [app] [I] Started POST "/discovered_hosts/mac525400a22a38/auto_provision" for 10.67.7.22 at 2016-12-01 08:16:05 -0500
2016-12-01 08:16:05 [app] [I] Processing by DiscoveredHostsController#auto_provision as HTML
2016-12-01 08:16:05 [app] [I]   Parameters: {"authenticity_token"=>"UfVY7Uq+AaCxCivb2ycVwr/zwQZzVrXPcW1IGL7gy10=", "id"=>"mac525400a22a38"}
2016-12-01 08:16:05 [app] [I] Match found for host mac525400a22a38 (5) rule rule1 (1)
2016-12-01 08:16:06 [app] [I] Create DHCP reservation for mac525400a22a38.idmqe.lab.eng.bos.redhat.com-52:54:00:a2:2a:38/192.168.100.14
2016-12-01 08:16:06 [app] [I] Add DNS A record for mac525400a22a38.idmqe.lab.eng.bos.redhat.com/192.168.100.14
2016-12-01 08:16:06 [app] [I] Add DNS PTR record for 192.168.100.14/mac525400a22a38.idmqe.lab.eng.bos.redhat.com
2016-12-01 08:16:08 [app] [I] Redirected to https://cloud-qe-4.idmqe.lab.eng.bos.redhat.com/discovered_hosts
2016-12-01 08:16:08 [app] [I] Completed 302 Found in 2621ms (ActiveRecord: 123.9ms)
2016-12-01 08:16:08 [app] [I] Started GET "/discovered_hosts" for 10.67.7.22 at 2016-12-01 08:16:08 -0500
2016-12-01 08:16:08 [app] [I] Processing by DiscoveredHostsController#index as HTML
2016-12-01 08:16:08 [app] [I]   Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-5.0.0.9/app/views/discovered_hosts/_discovered_hosts_list.html.erb (6.1ms)
2016-12-01 08:16:08 [app] [I]   Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-5.0.0.9/app/views/discovered_hosts/index.html.erb within layouts/application (9.8ms)
2016-12-01 08:16:08 [app] [I]   Rendered common/_searchbar.html.erb (2.4ms)
2016-12-01 08:16:08 [app] [I]   Rendered layouts/_application_content.html.erb (2.9ms)
2016-12-01 08:16:08 [app] [I]   Rendered home/_submenu.html.erb (1.2ms)
2016-12-01 08:16:08 [app] [I]   Rendered home/_user_dropdown.html.erb (1.3ms)
2016-12-01 08:16:08 [app] [I] Read fragment views/tabs_and_title_records-3 (0.1ms)
2016-12-01 08:16:08 [app] [I]   Rendered home/_topbar.html.erb (3.5ms)
2016-12-01 08:16:08 [app] [I]   Rendered layouts/base.html.erb (4.6ms)
2016-12-01 08:16:08 [app] [I] Completed 200 OK in 42ms (Views: 17.0ms | ActiveRecord: 4.9ms)
2016-12-01 08:16:18 [app] [I] Started GET "/unattended/provision?token=3de791d5-a2c2-4844-a6c8-09c160d2121e&static=yes" for 192.168.100.14 at 2016-12-01 08:16:18 -0500
2016-12-01 08:16:18 [app] [I] Processing by UnattendedController#host_template as */*
2016-12-01 08:16:18 [app] [I]   Parameters: {"token"=>"3de791d5-a2c2-4844-a6c8-09c160d2121e", "static"=>"yes", "kind"=>"provision"}
2016-12-01 08:16:18 [app] [I] Found mac525400a22a38.idmqe.lab.eng.bos.redhat.com
2016-12-01 08:16:19 [app] [I]   Rendered inline template (336.6ms)
2016-12-01 08:16:19 [app] [I] Completed 200 OK in 1576ms (Views: 320.7ms | ActiveRecord: 26.7ms)

Comment 27 Sachin Ghai 2016-12-01 13:23:38 UTC
Later, I disabled the discovery rule and discovered a host via pxe/pxe-less and then enable the rule and manually click on 'Auto-provision'. This time too provisioning auto-started. I don't see the reported issue.

Comment 28 Sachin Ghai 2016-12-01 14:08:10 UTC
Moving this verified as per comments26 & 27.

Comment 29 Lukas Zapletal 2016-12-02 11:01:24 UTC
*** Bug 1400708 has been marked as a duplicate of this bug. ***

Comment 30 errata-xmlrpc 2016-12-12 17:12:17 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, 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/RHBA-2016:2940