Bug 2057052

Summary: [RFE] Need a proxy to reach RHUI repos during an IPU
Product: Red Hat Enterprise Linux 7 Reporter: Christophe Besson <cbesson>
Component: leapp-repositoryAssignee: Leapp Notifications Bot <leapp-notifications-bot>
Status: NEW --- QA Contact: upgrades-and-conversions
Severity: medium Docs Contact:
Priority: medium    
Version: 7.9CC: adamkam, kyankovi, mkluson, pholica, pstodulk, rdulhani
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 Christophe Besson 2022-02-22 16:09:15 UTC
Description of problem:
When RHSM is used during the IPU, the proxy defined in RHSM is used, as it generates the redhat.repo file with the proxy setting.
But in case of RHUI repositories, there is no equivalent. Usually customers choose /etc/yum.conf to define it, but this is not taken into account in the target userspace container (/etc/yum/* are symlinked to /etc/dnf/* but not the main config file).

Version-Release number of selected component (if applicable):
leapp-upgrade-el7toel8-0.15.0-6.el7_9

How reproducible:
Always for AWS

Steps to Reproduce:
1. Try to upgrade a RHEL 7.9 OS (PAYG on AWS, not BYOS) behind a proxy.

Actual results:
Unable to reach RHUI repos.

Additional info:
* to workaround the issue, the proxy has been added to /etc/dnf/dnf.conf, and then the DNF config has been added by patching /usr/share/leapp-repository/repositories/system_upgrade/common/actors/scanfilesfortargetuserspace/libraries/scanfilesfortargetuserspace.py.

* the suggested feature I mentioned in rhbz#2040706 could help

Comment 3 Petr Stodulka 2022-05-03 17:37:53 UTC
Hi Chris, thanks for the report and sorry for delayed answer. The mentioned feature could be the solution / workaround for this bugzilla.

For now as a workaround customer can create a custom actor that does basically the same, so they are not blocked till a solution is delivered.
To see how to create a custom actor follow:
    https://access.redhat.com/articles/4977891#actors

Such an actor.py file could look like this in the simplest example:
~~~
from leapp.actors import Actor
from leapp.models import CopyFile, TargetUserSpacePreupgradeTasks
from leapp.tags import FactsPhaseTag, IPUWorkflowTag


class MyDNFProxyWorkaround(Actor):
    name = 'my_dnf_proxy_workaround'
    consumes = ()
    produces = (TargetUserSpacePreupgradeTasks,)
    tags = (FactsPhaseTag, IPUWorkflowTag)

    def process(self):
        # In case the current /etc/yum.conf file is compatible with DNF
        # from RHEL 8, it can be used in the src instead of the dnf one
        preupgrade_task = TargetUserSpacePreupgradeTasks(copy_files=[
            CopyFile(src='/etc/dnf/dnf.conf', dst='/etc/dnf/dnf.conf'),
        ])
~~~

Ideal solution for this BZ would be migration of the yum configuration file,
but it's unlikely that this happen.



Note: Keeping the feature aside for now as we have some discussions around.

Comment 4 Petr Stodulka 2022-05-03 17:40:35 UTC
The example above expects the /etc/dnf/dnf.conf file is already configured correctly for the RHEL 8 DNF (with the proxy added).