-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #3941 #3942
Fixes #3941 #3942
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
repodata/
is an implementation detail of the RPM plugin, it doesn't belong in the core export code. I don't think we can merge this as-is.
Instead I would look into why this query doesn't pick it up already? I would expect it to.
I see your explanation but it doesn't make complete sense to me.
The point of incremental export is that only the things which have changed are exported. So if it was in a previous export, I wouldn't expect it to be in a subsequent incremental one. That's the whole point of the incrementalism. The incremental exports are meant to be copied on top of some existing export rather than used on their own. If you do that, then the Are you sure the user in this case isn't trying to use an incremental export as though it was a full export? |
The way katello is using it is such that the user importing the repository will sync from the incremental directory (without copying it over anything), where it is expected to find the metadata of the repository and any new artifacts. I completely agree with you that if we copy it over a previous complete export it works just fine. Maybe @parthaa should join the conversation. |
I would consider this either a Katello or a documentation bug then. This is the way this feature was described when it was requested / added:
From Pulp's perspective I don't think there is a bug here. |
I'm going to close the issues, we can keep the conversation going though. |
Also from #3431
The metadata should be copied verbatim but this is not happening. |
I interpret that as just meaning that there aren't any diffs between files, so copying the file alone is sufficient to make it sync-able. Rather than applying a patch to the file(s), or something. But yeah, it's a bit ambiguous. The Katello-side PR describes it as RPMs + metadata that changed.
Katello/katello#10417 (comment) The issue is that that is not necessarily directly sync-able due to this one exception. @parthaa @iballou if it would be possible to copy the import directory overtop of the old one first that would be best, but if needed I think we could make an exception for |
@dralley The katello comment is probably misleading.
More over the standard (non-FS) pulp exporter does the same thing for incremental afaik. Latest full metadata + the content artifacts that changed. @ggainey correct me if I am wrong. If productid belongs to the metadata then we should include it. If it belongs as an artifact then incremental will not include that. |
quick comment - pulpexport/import (the standard one) does not export Publication/Distribution info, because it's not expected that the upstream "owns" the downstream's expectations there. It doesn't know what Content is "metadata" - it just knows "these Artifacts have changed since the last export, and will therefore be exported". |
That was in fact my understanding of the design. Clearly, Something Changed between discussion and implementation... |
Maybe somewhere around here https://github.com/pulp/pulpcore/blob/main/pulpcore/app/tasks/export.py#L146-L155 we could look for for all PublishedMetadata associated with the passed-in |
Let's move discussion to the issue #3941 |
Ensure all artifacts which relative_path includes repodata/ are included on fs_exports.