Bug 2308671

Summary: crb enable fails with 'subscription-manager: error: no such option'
Product: [Fedora] Fedora EPEL Reporter: Miguel Martin <mmartinv>
Component: epel-releaseAssignee: Troy Dawson <tdawson>
Status: MODIFIED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: epel9CC: carl, kevin, maxwell, smooge, tdawson
Target Milestone: ---   
Target Release: ---   
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: 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 Miguel Martin 2024-08-30 11:28:37 UTC
Description of problem:
Running crb enable fails with 'subscription-manager: error: no such option'

Version-Release number of selected component (if applicable):
epel-release-9-7.el9.noarch

How reproducible:
Always

Steps to Reproduce:
1. Use a subscription where codeready-builder-for-rhel-9-x86_64-rhui-rpms is available
2. run 'crb enable'

Actual results:
crb enable fails with:
Enabling CRB repo
subscription-manager: error: no such option: codeready-builder-for-rhel-9-x86_64-rpms
CRB repo is enabled and named: codeready-builder-for-rhel-9-x86_64-rpms

Expected results:
CRB repository is enabled

Additional info:
It looks like 'crb' fails as it does not filter 'codeready-builder-for-rhel-9-x86_64-rhui-rpms' repo correctly

Comment 1 Troy Dawson 2024-08-30 13:23:56 UTC
You are correct, but I have no rhui machines to test on.
What do you get when you do


dnf repolist --all | grep -i -e crb -e powertools -e codeready

Comment 2 Miguel Martin 2024-08-30 13:58:28 UTC
codeready-builder-for-rhel-9-x86_64-debug-rpms                Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-eus-debug-rpms            Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-eus-rhui-debug-rpms       Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-eus-rhui-rpms             Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-eus-rhui-source-rpms      Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-eus-rpms                  Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-eus-source-rpms           Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-rhui-debug-rpms           Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-rhui-rpms                 Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-rhui-source-rpms          Red Hat C disabled
codeready-builder-for-rhel-9-x86_64-rpms                      Red Hat C enabled
codeready-builder-for-rhel-9-x86_64-source-rpms               Red Hat C disabled

Comment 3 Miguel Martin 2024-08-30 13:59:48 UTC
I think you just need to add -e rhui to all the ocurrences of 'grep -v -i -e debug -e source -e eus -e virt'

Comment 4 Troy Dawson 2024-08-30 14:02:18 UTC
(In reply to Miguel Martin from comment #3)
> I think you just need to add -e rhui to all the ocurrences of 'grep -v -i -e
> debug -e source -e eus -e virt'

Yep
Simple enough fix.

Comment 5 Troy Dawson 2024-08-30 21:58:15 UTC
I'm not sure why this wasn't automatically updated, but here are the builds.
epel9: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2024-5e6d90ccde
epel8: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2024-6e5a4ffb91

Comment 6 Carl George 🤠 2024-11-27 23:16:33 UTC
On a RHUI connected system, shouldn't the preference be for codeready-builder-for-rhel-9-x86_64-rhui-rpms, not codeready-builder-for-rhel-9-x86_64-rpms?  I think you would only have the later on a RHUI system if there was a regular subscription on that system as well, which seems like a mistake.  The script is going to need a bit better logic than just always excluding repos with "rhui" in the repo ID.

Comment 7 Troy Dawson 2024-12-05 17:41:11 UTC
You have a good point.  Although excluding rhui still get's you crb enabled, it doesn't give you an efficient repo (one that is close to you.)

The error was happening because we have more than one item coming from our logic.  What if we fix that, and make it so the rhui line would be the prefered line.

We currently have

  crb_repo=$(dnf repolist | grep -i -e crb -e powertools -e codeready | grep -v -i -e debug -e source -e eus -e virt -e rhui | awk '{print $1}')

But if we switch it to this, it should give us what we want.

  crb_repo=$(dnf repolist | grep -i -e crb -e powertools -e codeready | grep -v -i -e debug -e source -e eus -e virt | awk '{print $1}' | head -n1)

"dnf repolist" gives the repo's sorted in an alphabetical order.  Thus 'codeready-builder-for-rhel-9-x86_64-rhui-rpms' will always be before 'codeready-builder-for-rhel-9-x86_64-rpms' and "head -n1" will give us the repo that we want.

If that sounds good, I'll get a pull request written up.

Comment 8 Carl George 🤠 2024-12-06 05:39:46 UTC
I am slightly worried long term about relying on an alphabetical sort because that seems fragile (for instance, if the id of the RHUI repos changes), but it would work for now until we get around to implementing more advanced logic.  Let's do it.  Drop a link to the PR here once you have it worked up and I'll try to review.