[Pulp-dev] Solving the "callback problem" ... aka how pulpcore will stop finalizing RepositoryVersion

Simon Baatz gmbnomis at gmail.com
Tue Nov 5 20:53:35 UTC 2019


Hi Brian,

On Tue, Nov 05, 2019 at 02:46:18PM -0500, Brian Bouterse wrote:
>    ...
>    Note that the context manager is only syntactic sugar. The pulp_file
>    sync code could also just as easily be as shown below. This is
>    incomplete, but I think you'll get the idea.
>    [3]https://github.com/dralley/pulp_file/compare/typed-repositories...bm
>    bouter:plugin-finalize-no-context-manager
>    With this plugins can even do what they want in terms of style (context
>    manager or not). Also they can not use it at all and the only extra
>    responsibility would be to finalize the RepositoryVersion with its
>    context manager (core provided).
>    I'd like to ask for feedback on this design asap. Questions are
>    concerns ... please send 'em.

This is an elegant solution for the sync case and, as you said,
offers multiple options to implement validation/extra changes. 
However there are other places in core that create repo versions.  I
think we have three overall: sync, add_and_remove task, and create()
in SingleArtifactContentUploadSerializer.

How will the plugin writer reuse validation code in the other places? 
Currently, it seems that he/she has to duplicate some of the existing
core code to get the plugin's validation code into the right place.




More information about the Pulp-dev mailing list