Goal:
- Use Pulp PRNs instead of Pulp hrefs for access Pulp entities
- Ready Katello for Pulp 4, which will use PRNs by default
- https://hackmd.io/@ggainey/pulp4_proposal#/5 mentioned that Pulp 4 could become real in 2025, which we need to be ready for.
Acceptance Criteria:
- PRNs are used instead of Pulp hrefs
- Migration is performed in a timely manner to reduce upgrade pains
Open questions:
- How can we best reduce migration time?
- Storing PRNs in our DB before the migration is committed to should make the switch faster than querying the items via the Pulp API at migration time.
- Compute the PRNs rather than fetching them.
List of fields that need updating found via Claude Code:
Repository Management (pulp_href fields):
- katello_repositories.remote_href
- db/migrate/20190219152921_add_pulp3_attributes.rb:22
- katello_repositories.publication_href
- db/migrate/20190219152921_add_pulp3_attributes.rb:23
- katello_repositories.version_href
- db/migrate/20190219152921_add_pulp3_attributes.rb:24
- katello_repository_references.repository_href
- db/migrate/20190219152921_add_pulp3_attributes.rb:12
- katello_repositories.pulp_id
- db/migrate/20131014135042_katello_tables.rb:371
Distribution Management (pulp_href fields):
- katello_distribution_references.href
- db/migrate/20190219152921_add_pulp3_attributes.rb:6
- katello_distribution_references.content_guard_href
- db/migrate/20200407171926_create_content_guard.rb:8
Content Guard Management (pulp_href fields):
- katello_content_guards.pulp_href
- db/migrate/20200407171926_create_content_guard.rb:4
Alternate Content Source Management (pulp_href fields):
- katello_smart_proxy_alternate_content_sources.remote_href
- db/migrate/20220117151612_add_alternate_content_sources.rb:32
- katello_smart_proxy_alternate_content_sources.alternate_content_source_href
- db/migrate/20220117151612_add_alternate_content_sources.rb:33
Content-specific hrefs:
- katello_repository_errata.erratum_pulp3_href
- db/migrate/20200204034123_add_pulp3_href_to_repository_erratum.rb:3
Content Unit Types (pulp_id fields):
- katello_ansible_collections.pulp_id
- db/migrate/20190617142328_create_katello_ansible_collections.rb:4
- katello_debs.pulp_id - Database column (Debian packages)
- katello_docker_manifest_lists.pulp_id - Database column
- katello_docker_manifests.pulp_id - Database column
- katello_docker_tags.pulp_id - Database column
- katello_errata.pulp_id - Database column
- katello_files.pulp_id - Database column (File units)
- katello_generic_content_units.pulp_id
- db/migrate/20210624221630_katello_generic_content.rb:6
- katello_module_streams.pulp_id - Database column
- katello_package_groups.pulp_id - Database column
- katello_rpms.pulp_id - Database column (renamed from uuid in db/migrate/20190107160723_units_uuid_to_backend_ident.rb:5)
- katello_srpms.pulp_id - Database column