Bug 1755755

Summary: check-epel-repository check of foreman-maintain doesn't work properly if any repo is misconfigured.
Product: Red Hat Satellite Reporter: Jameer Pathan <jpathan>
Component: Satellite MaintainAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED WONTFIX QA Contact: Jameer Pathan <jpathan>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.6.0CC: apatel, ehelms, fgarciad, inecas, kgaikwad, mbacovsk
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-17 15:09:40 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
Steps to reproduce issue. none

Description Jameer Pathan 2019-09-26 07:23:42 UTC
Description of problem:
check-epel-repository check of foreman-maintain doesn't work properly if any repo is misconfigured.

Version-Release number of selected component (if applicable):
- Satellite 6.6.0 
- rubygem-foreman_maintain-0.4.9-1.el7sat.noarch

How reproducible:
- Always

Steps to Reproduce:
1. Enable epel repos.
2. Create/have a repo with invalid baseurl.
3. Run "foreman-maintain health check --label check-epel-repository"

Actual results:
- check-epel-repository check passes.

Expected results:
- check-epel-repository check should fail.

Additional info:
# foreman-maintain health check --label check-epel-repository
Running ForemanMaintain::Scenario::FilteredScenario
================================================================================
Check if EPEL repository enabled on system: 
/ Checking for presence of EPEL repository                                      

 One of the configured repositories failed (zoo),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=test ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable test
        or
            subscription-manager repos --disable=test

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=test.skip_if_unavailable=true

failure: repodata/repomd.xml from test: [Errno 256] No more mirrors to try.
https://inecas.fedorapeople.org/fakerepos/zooo/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
                            [OK]
--------------------------------------------------------------------------------

Comment 3 Jameer Pathan 2019-09-26 07:27:13 UTC
Created attachment 1619400 [details]
Steps to reproduce issue.

Comment 4 Jameer Pathan 2019-09-26 13:07:57 UTC
This also affects check-upstream-repository check.

Comment 6 Suraj Patil 2020-05-11 10:28:36 UTC
Created redmine issue https://projects.theforeman.org/issues/29728 from this bug

Comment 9 Eric Helms 2021-11-17 15:09:40 UTC
The feature relies on the data yum reports and if yum is having an issue reporting the data it throws the appropriate error message that a user should take action on.