Bug 1944322

Summary: Job rerun using hammer fails when operating system properties are not consistent. Works fine on webUI
Product: Red Hat Satellite Reporter: Joniel Pasqualetto <jpasqual>
Component: Remote ExecutionAssignee: Adam Ruzicka <aruzicka>
Status: CLOSED ERRATA QA Contact: Peter Ondrejka <pondrejk>
Severity: high Docs Contact:
Priority: high    
Version: 6.8.0CC: ahumbe, aruzicka, kupadhya, lstejska, pcreech, snelsond
Target Milestone: 6.10.0Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tfm-rubygem-foreman_remote_execution-4.5.1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-16 14:10: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:

Description Joniel Pasqualetto 2021-03-29 18:24:07 UTC
Description of problem:

1. Job execution fails (for any reason)
2. User wants to rerun job on failed hosts using hammer. 
3. Rerun job cannot be posted due to error below:

~~~
# hammer job-invocation rerun --id 20057 --failed-only=true
Validation failed: Targeting: Hosts is invalid
~~~

If "rerun failed" is called using webUI it works fine.

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

Satellite 6.7 (customer) and Satellite 6.8 (internal reproducer)

How reproducible:

** Host on Satellite must have some inconsistent configurations (easy way to reproduce it is assigning a medium_id to the host that is not linked to its operating system) **

1. Try running a job and force it to fail (type wrong password, for example). Note the job id from the URL (https://192.168.250.100/job_invocations/20060 => job id is 20060)
2. Ensure host has a wrong medium_id assigned:

   - Create a random media on Satellite and get its id (let's say, medium_id = 12). Do not assign this media to the operating system of the host!
   - Assign the medium_id to the host manually:
~~~
echo "update hosts set medium_id = '12'  where id = '57';"|su - postgres -c "psql foreman"
~~~

3. Rerun the job using hammer and it will fail:

~~~
hammer job-invocation rerun --id 20060 --failed-only=true
~~~

On the webUI (https://192.168.250.100/job_invocations/20060) click option "Rerun failed" and job will start properly.

Actual results:

WebUI is able to rerun job. Hammer cannot rerun job due to extra verification.

Expected results:

WebUI and hammer should be able to rerun the job (or both should fail). I only expect consistency.

Additional info:

Comment 4 Adam Ruzicka 2021-06-07 14:54:28 UTC
Created redmine issue https://projects.theforeman.org/issues/32742 from this bug

Comment 7 Bryan Kearney 2021-06-08 12:03:15 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/32742 has been resolved.

Comment 8 Peter Ondrejka 2021-08-06 11:36:11 UTC
Verified on satellite 6.10 sn 12


# hammer job-invocation rerun --id 1 --failed-only=true
Job invocation was rerun as 3

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