Bug 1729843 - Insights Remediation playbook fails with error "Failed to create job. Ensure your systems are registered in Foreman" when system hostname has uppercase characters
Summary: Insights Remediation playbook fails with error "Failed to create job. Ensure ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Ansible - Configuration Management
Version: 6.4
Hardware: All
OS: All
unspecified
medium
Target Milestone: 6.10.0
Assignee: Rex White
QA Contact: Peter Ondrejka
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-07-15 06:03 UTC by roarora
Modified: 2023-12-15 16:37 UTC (History)
10 users (show)

Fixed In Version: tfm-rubygem-redhat_access-2.9.1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1962876 (view as bug list)
Environment:
Last Closed: 2021-11-16 14:08:51 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github redhataccess foreman-plugin issues 39 0 None closed Insights playbook remediation fails for hosts with uppercase hostname 2021-02-16 07:25:34 UTC
Github redhataccess foreman-plugin pull 59 0 None closed Escape host names properly for plan search 2021-05-02 13:45:17 UTC
Red Hat Product Errata RHSA-2021:4702 0 None None None 2021-11-16 14:09:04 UTC

Description roarora 2019-07-15 06:03:24 UTC
Description of problem:

This bug is when system registered to satellite has Uppercase characters like CLIENT.example.com. Satellite converts the hostname in lower case before saving into database but insights registration accepts upper case characters. This causes a resolution issue in code : 

File :  /opt/theforeman/tfm/root/usr/share/gems/gems/redhat_access-2.2.0/app/models/redhat_access/concerns/host_managed_extensions.rb
Line :  host_ids = Host::Managed.where(:name => hostname_rules_relation.keys).pluck(:id)

Abov search is case sensitive and remdeiation fials with error :
===========
2019-05-07T09:38:31 [E|bac|59729] PG::SyntaxError: ERROR:  syntax error at or near ")"
LINE 1: ... "hosts"."organization_id" = 4 AND (( hosts.id IN())) ORDER ...
                                                             ^
: SELECT "hosts"."id" FROM "hosts" WHERE "hosts"."type" IN ('Host::Managed') AND "hosts"."organization_id" = 4 AND (( hosts.id IN())) ORDER BY "hos
ts"."name" ASC (ActiveRecord::StatementInvalid)
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activerecord-5.1.6/lib/active_record/connection_adapters/postgresql_adapter.rb:616:in `async_exec'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activerecord-5.1.6/lib/active_record/connection_adapters/postgresql_adapter.rb:616:in `block (2 levels) in exec_no_cache'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
===========


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

How reproducible:
Always

Steps to Reproduce:
1. Register a system with satellite which has uppercase characters in hostname. Also register the same to insights
2. Run a remeditaion playbook and it will fail


Additional info:

A workaround is to re register the system with insights with lowercase characters
# insights-client --force-reregister --display-name $(hostname -f | tr [A-Z] [a-z])

Comment 6 Rex White 2020-06-29 19:01:07 UTC
This is fixed in redhat_access-2.2.15.gem.  This gem is valid for satellite 6.5, 6.6, 6.7 and 6.8

Comment 11 Peter Ondrejka 2021-03-19 12:31:24 UTC
Still reproducible in Satellite 6.9 snap 17 tfm-rubygem-redhat_access-2.2.19

Steps:

- on host, modify hostname so that it contains uppercase characters 
- register host to satellite using global registration dialog with insights setting enabled
- after successful registration, observe the hostname appears upcased in the insights overview, but downcased in the hosts list
- create a remediation playbook and plan for the host

When clicking Run Playbook in the Plans detail view, a popup appears: 

Failed to create job. Ensure your systems are registered in Foreman

If using Customized Playbook run, and submitting the rex job, the result is red screen with:

Oops, we're sorry but something went wrong PG::SyntaxError: ERROR: syntax error at or near "vms" LINE 1: ...location_id" = $3 AND (( hosts.name IN(<hostname>... ^

Prodlog excrept in attachment.

Confiming the changes from associated github pr landed with tfm-rubygem-redhat_access-2.2.19

Comment 13 Mike McCune 2021-03-19 21:25:34 UTC
Going to move this out of 6.9 to 6.10 where we are fully removing the old legacy access plugin and will have this solved when remediations are handled by the new cloud plugin.

Comment 14 Tomer Brisker 2021-05-02 13:45:21 UTC
The error in comment #11 was fixed by https://github.com/redhataccess/foreman-plugin/pull/59 which is in version 2.2.20 of the gem. Moving to MODIFIED.

Comment 17 Peter Ondrejka 2021-10-20 11:55:39 UTC
Verified on Satellite 6.10 snap 23 using steps from the comment 11, registered host now appears with downcased hostname in the remediation list, remediation job is executed successfully

Comment 20 errata-xmlrpc 2021-11-16 14:08:51 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.