Skip to content

Conversation

@ianballou
Copy link
Member

@ianballou ianballou commented Nov 25, 2025

  • Avoids the remote update task response in Pulp being empty.
  • Issue is caused by the plugin bindings being generated with a newer version of Pulpcore.

What are the changes introduced in this pull request?

Pins Pulp plugins to known good versions that return tasks in remote update responses.

Considerations taken when implementing this change?

Pinning these is temporary, we need a more permanent solution for Katello 4.20.

What are the testing steps for this pull request?

Without my patch and the latest gems updated, try syncing a container repository. When the repository is refreshed, the task response should be empty.

In my case, I tested this by syncing a smart proxy. When you sync a container repository to the smart proxy with --skip-metadata-check=1, the RefreshRepos response is empty.

Or, better yet, run the following in the console:

irb(main):002:0> ::Katello::Repository.find(2).backend_service(SmartProxy.first).refresh_mirror_entities
=> [#<PulpContainerClient::ContainerContainerRemoteResponse:0x00007f8eec0a2710 @name=nil, @upstream_name=nil, @url=nil>]

Those nils are the error. Try this for all repository types and ensure a task is returned instead of a broken empty task.

Summary by Sourcery

Build:

  • Narrow version ranges for all Pulp client gems to specific patch-level upper bounds to avoid regressions from newer Pulpcore-generated bindings.

* Avoids the remote update task response in Pulp being empty.
* Issue is caused by the plugin bindings being generated with a newer
  version of Pulpcore.
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes and they look great!

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location> `katello.gemspec:55-62` </location>
<code_context>
-  gem.add_dependency "pulp_container_client", ">= 2.26.0", "< 2.27.0"
-  gem.add_dependency "pulp_deb_client", ">= 3.7.0", "< 3.8.0"
-  # FIXME: unpin pulp_rpm_client once issue is resolved.
+  # FIXME: unpin pulp_clients once polymorphic remote response issue is patched.
+  # See https://github.com/pulp/pulp_rpm/issues/4178 for more information.
+  gem.add_dependency "pulpcore_client", ">= 3.85.0", "< 3.85.4"
+  gem.add_dependency "pulp_file_client", ">= 3.85.0", "< 3.85.4"
+  gem.add_dependency "pulp_ansible_client", ">= 0.28.0", "< 0.28.1"
+  gem.add_dependency "pulp_container_client", ">= 2.26.0", "< 2.26.3"
+  gem.add_dependency "pulp_deb_client", ">= 3.7.0", "< 3.7.1"
   gem.add_dependency "pulp_rpm_client", ">= 3.32.0", "< 3.32.3"
-  gem.add_dependency "pulp_certguard_client", ">= 3.85.0", "< 3.86.0"
-  gem.add_dependency "pulp_python_client", ">= 3.19.0", "< 3.20.0"
</code_context>

<issue_to_address>
**suggestion:** Clarify whether pulp_rpm_client is intended to be part of the pinned "pulp_clients" set.

The FIXME now refers to "pulp_clients" in general and links to a pulp_rpm issue, but the rpm client still uses a different pinning pattern and isn’t clearly covered by that comment. Please either explicitly state that pulp_rpm_client is included in the scope of this FIXME (if it’s affected by the same issue) or adjust the wording to clarify exactly which clients the comment applies to.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

# FIXME: unpin pulp_rpm_client once issue is resolved.
# FIXME: unpin pulp_clients once polymorphic remote response issue is patched.
# See https://github.com/pulp/pulp_rpm/issues/4178 for more information.
gem.add_dependency "pulpcore_client", ">= 3.85.0", "< 3.85.4"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see the latest version of the pulpcore_client gem as 3.85.3..Similarly latest pulp_ansible gem is 0.28.0..
Are we pinning these to prevent future updates?

The actual pins are rpm and containers?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are pinning these to prevent future updates. Future updates for any of the bindings could trigger the pulp_rpm issue I listed (turns out that issue is likely related to all plugins)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

However I propose that we unpin these for Katello 4.20 and backport.

@ianballou
Copy link
Member Author

@ianballou ianballou merged commit 509c9ae into Katello:master Dec 5, 2025
21 of 22 checks passed
@ianballou ianballou deleted the 38922-temp-pulp-pins-remote-update-issue branch December 5, 2025 19:38
@ianballou ianballou changed the title Fixes #38922 - temporarily pin Pulp clients Fixes #38822 - temporarily pin Pulp clients Dec 5, 2025
@ianballou ianballou changed the title Fixes #38822 - temporarily pin Pulp clients Fixes #38922 - temporarily pin Pulp clients Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants