Story #8250
closedAs a user, all advisory conflicts are resolved automagically
100%
Description
Motivation¶
There are situations when Pulp raises an AdvisoryConflict
exception and fails a sync or copy task.
In such cases, manual resolution is needed.
It's neither easy, nor straightforward in some cases for user to resolve it.
Situation 1
Updated date and version are the same but pkglists differ (and one is not a subset or superset of the other).
E.g. It's likely a mistake in one of the pkglists.
Manual resolution:
- look at both and decide which one to keep
- if the "bad" one is in Pulp, remove it from Pulp (remove from every repo version and run orphan cleanup)
- if the "bad" one is in a remote source, contact remote source and ask them to fix it
Situation 2
Updated dates are different but pkglists have no intersection at all.
E.g. It's either and attempt to combine content from incompatible repos (RHEL6-main and RHEL7 debuginfo), or someone created a completely different advisory with already used id.
Manual resolution:
- look at both and decide what's wrong
- maybe pick one if it works for user's case (pick one = either remove from Pulp or do not add a remote one)
- maybe change what is added to a repo if it was a mistake (e.g. to combine RHEL6-main and RHEL7-debuginfo)
Proposed solution¶
Since Pulp cannot safely resolve conflicts in the situations described earlier, any automatic resolution would be at user's own risk.
Introduce a global configuration ALLOW_UNSAFE_ADVISORY_CONFLICT_RESOLUTION
, which defaults to False
.
When it is set to True
:
- for Situation 1, Pulp will produce a new advisory content unit with merged pkglists
- for Situation 2, Pulp will pick a newer one
This is not on a roadmap, please leave a comment if you need this feature and what is your situation/use case.
Added ALLOW_AUTOMATIC_UNSAFE_ADVISORY_CONFLICT_RESOLUTION.
Default is False.
closes #8250