Project

General

Profile

Bug #28037

Incremental errata dependencies not getting copied over for RHEL 8

Added by Partha Aji over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Content Views
Target version:
Difficulty:
Triaged:
Yes
Bugzilla link:
Fixed in Releases:
Found in Releases:

Description

Problem
Content from one repo (RHEL8 Appstream) can depend on content form another repo (RHEL8 BaseOS).

User won't be able to copy errata with all dependencies for its packages if dependencies are in different repo.

The problem was not very common before RHEL 8, because RHEL repositories always contained all the dependencies within it. Now with RHEL8 having 2 repos, the problem will be much more common.

Pulp added and "additional_repos" parameter to its API to consider all dependent repos when computing the errata dependencies. (solved by -> https://pulp.plan.io/issues/5067)

Katello needs to leverage this API and pass in appropirate repository mapping for additional repositories

Associated revisions

Revision 4b52fa66 (diff)
Added by Partha Aji about 2 years ago

Fixes #28037 - Incremental Update additional repos (#8378)

This commit handles incremental update with additional_repos parameters.
Rpms from one repo can depend on rpms from another repo, this is
especially true with RHEL 8. This causes a problem during depsolving.
For example if we have a module/errata in one repo pointing packages in
another repo, we'd like to ideally copy the dependencies across both
repositories in the same operation.
In the incremental update case for example the user may request a
certain errata to be copied over along with their dependencies.
To address this Pulp 2.21 updated their copy api to accept
"additional repos" (https://pulp.plan.io/issues/5067.)

This commit sets up the appropriate mapping for this operation. So if
the content view has depsolve turned on or if its incremental katello
will create a 'repository_mapping' which maps source repo to a
destination repo. The entries in this hash consist of all the
repositories in the content view version minus the main one.
For example
CVV1 - repos A,B
On incremental update CVV1 -> CVV 1.1
The copy operation for content in repo A will have {b:dest-b} as the
"additional_repos" aka "repository mapping".
This mapping is then passed to pulp copy api.

This change has a couple of complexities. We need all the destination
repositories to be created before we call the copy operations with the
addition_repos mapping. To handle this a new CreateRepos plan was
created and the CloneToVersion plan was modified to accept a
destination repo. The CloneToVersion call now expects the destination
repo to have been created before copying.
Changes were made to both IncrementalUpdate and Publish plans to
accomodate the new structure.

History

#1 Updated by Partha Aji over 2 years ago

  • Bugzilla link set to 1725958

#2 Updated by The Foreman Bot over 2 years ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/Katello/katello/pull/8378 added

#3 Updated by Samir Jha over 2 years ago

  • Triaged changed from No to Yes
  • Target version set to Katello 3.14.0

#4 Updated by The Foreman Bot about 2 years ago

  • Fixed in Releases Katello 3.15.0 added

#5 Updated by Partha Aji about 2 years ago

  • Status changed from Ready For Testing to Closed

Also available in: Atom PDF