Bug 1962870 - Inherited hostgroup values are not set when creating host
Summary: Inherited hostgroup values are not set when creating host
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Host Group
Version: 6.9.0
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: 6.10.0
Assignee: satellite6-bugs
QA Contact: Omkar Khatavkar
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-05-20 17:04 UTC by James Jeffers
Modified: 2021-11-16 14:11 UTC (History)
9 users (show)

Fixed In Version: tfm-rubygem-katello-4.1.0-0.1.rc2
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1955421
Environment:
Last Closed: 2021-11-16 14:11:16 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 32464 0 Normal Closed Inherited hostgroup values are not set when creating host 2021-05-20 17:04:44 UTC
Github Katello katello pull 9327 0 None closed Fixes #32464 - Inherited hostgroup values are not passed to host 2021-05-20 17:04:44 UTC
Red Hat Knowledge Base (Solution) 6064921 0 None None None 2021-05-20 17:04:44 UTC
Red Hat Product Errata RHSA-2021:4702 0 None None None 2021-11-16 14:11:25 UTC

Description James Jeffers 2021-05-20 17:04:32 UTC
+++ This bug was initially created as a clone of Bug #1955421 +++

Description of problem:
Failed to create a host using a nested hostgroup because all values that inherited from the parent host group are not set, such has content_view_id, content_source_id, lifecycle_environment_id and kickstart_repository_id.

Steps to Reproduce:
1. Create a parent hostgroup. Set the content source, content_view, lifecycle environment and the synced content.
2. Create a nested hostgroup that inherit the above values.
3. Create a host using the nested hostgroup.

hammer host create --name "my-test-client1" --hostgroup-id <the nested hostgroup id> --location "Default Location" --organization "MYORG" --mac="xx:xx:xx:xx:xx:xx" --domain-id 1  --ask-root-password yes --subnet apac-mps --ip xxx.xxx.xxx.xxx

Actual results:
Could not create the host:
  Medium can't be blank
  Content view can't be blank
  Lifecycle environment can't be blank


Expected results:
host created successfully

Additional info:
The "inherited_#{attribute}" method returns an array so rails is unable to set the nested attribute.


# foreman-rake console
Satellite 6.8 output: Hostgroup.find(21).inherited_kickstart_repository_id
=> 707   <========== Correct

Satellite 6.9 output: Hostgroup.find(21).inherited_kickstart_repository_id
=> [707]  <========= Wrong


Make the following change in "/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.18.1.27/app/models/katello/concerns/hostgroup_extensions.rb" fixed the issue.

@@ -126,7 +126,7 @@
           facet_model = Facets.registered_facets[facet].hostgroup_configuration.model
           value = facet_model.where.not(attribute => nil).joins(:hostgroup).merge(
             ::Hostgroup.where(id: self.ancestor_ids).reorder(ancestry: :desc)
-          ).limit(1).pluck(attribute)
+          ).limit(1).pluck(attribute).first
         end
         value
       end

--- Additional comment from  on 2021-05-09T16:21:21Z 

Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/32464 has been resolved.

Comment 4 errata-xmlrpc 2021-11-16 14:11:16 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


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