Bug #34399
closedApplying exclude filter on a CV containing kickstart repos causes missing package groups issue during system build after upgrading to Katello 4.1
Description
Steps to Reproduce:
1. Create a Satellite 6.9 and another Satellite 6.10
2. Import manifest in both and enabled + sync these two repos in both of them.
Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server
Red Hat Enterprise Linux 7 Server Kickstart x86_64 7.9
3. Create a CV in both satellite called , RHEL7 where,
- Above repos are added
- Following exclude filter is created and set applicable for all repos.
--------|-----------|--------------------------|--------------------
RULE ID | FILTER ID | NAME | MINIMUM VERSION
--------|-----------|--------------------------|--------------------
1 | 1 | java-11-openjdk | 11.0.13.0.8-1.el7_9
2 | 1 | java-11-openjdk-headless | 11.0.13.0.8-1.el7_9
--------|-----------|--------------------------|--------------------
4. Publish a new version of the CV to Library environment and this should create version 1.0 of the CV itself with content-view-version-id 2 (assuming).
5. Inquiry the package group information from the published version of the CV using hammer commands or by directly checking the comps.xml file from the published path of repo.
Actual results:
On Satellite 6.9, the package group information is available even though the expected packages are successfully excluded.
- hammer package-group list --content-view RHEL7 --lifecycle-environment-id 1 --per-page 9999 --search "name = Base"
---|--------------------|--------------------------------------------------------|-------------------------------------
ID | PACKAGE GROUP NAME | REPOSITORY NAME | UUID
---|--------------------|--------------------------------------------------------|-------------------------------------
78 | Base | Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server | 01bc946b-5122-4b17-90ca-623f622ddb5f
55 | Base | Red Hat Enterprise Linux 7 Server Kickstart x86_64 7.9 | c20c3196-e3f1-4d14-9cb1-da972ba63976
---|--------------------|--------------------------------------------------------|-------------------------------------Even if we investigate the comps.xml of kickstart 7.9 from the published version of view i.e. from /var/lib/pulp/published/yum/http/repos/*/Library/RHEL7/content/dist/rhel/server/7/7.9/x86_64/kickstart/repodata , It will show us the Base group available.
On Satellite 6.10, The package group Base is completely missing:
- hammer package-group list --content-view-version-id 2 --per-page 9999 --search "name = Base"
---|--------------------|-----------------|-----
ID | PACKAGE GROUP NAME | REPOSITORY NAME | UUID
---|--------------------|-----------------|-----
Also, from UI --> Content --> Content Views --> RHEL7 --> Click on Version 1.0 --> Click on "rpm Package Groups" --> Search by "name = Base" without quotes and nothing will appear
And if we are using this CV + LCE to build a system, and the kickstart is calling "@Base" or "@dditional Development" groups , the build will fail with error that Anaconda was not able to find any such groups.
Expected results:
The package groups should not be missing from the CV even if a related package is being excluded.
Additional info:
On Sat 6.10, If we edit the CV filter and Go to "Affected Repositories" tab, Selecting the option "This filter applies only to a subset of repositories in the content view." and then ensure to either just select "Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server" or ensure to select all repos but not the Kickstart 7.9, then saving the same and publishing a new version of CV, will bring back the Base and Other missing groups inside in that version from Kickstart 7.9 repo.
hammer> package-group list --content-view-version-id 2 --per-page 9999 --search "name = Base"
----|--------------------|-----------------------------------------------------------------|-----------------------------------------------------------------------------
ID | PACKAGE GROUP NAME | REPOSITORY NAME | UUID
----|--------------------|-----------------------------------------------------------------|-----------------------------------------------------------------------------
115 | Base | Red Hat Enterprise Linux 7 Server Kickstart x86_64 7.9 | /pulp/api/v3/content/rpm/packagegroups/7cf90a3e-77e5-467a-ba11-0070ca5df2e5/
----|--------------------|-----------------------------------------------------------------|-----------------------------------------------------------------------------
So it is either the fact that Pulp2 was working wrong or It's the fact that Pulp 3 is behaving unexpectedly here and we need to ensure not to select all repos while using a filter but only select the ones from where we want to exclude the packages.