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

Brian Bouterse bmbouter at redhat.com
Tue Nov 5 19:46:18 UTC 2019


As a followup to the chat discussion from triage/open-floor today, here is
the POC on top of typed repositories. It's actually a very small change,
the *only* significant difference is that the stages API no longer uses the
RepositoryVersion context manager. Thus, the plugin writer must finalize
it, but they can do that using core-provided facilities. The links below
are diffs on top of @dalley's unmerged PRs so the links are long:

https://github.com/dralley/pulpcore/compare/typed-repositories...bmbouter:plugin-context-manager
https://github.com/dralley/pulp_file/compare/typed-repositories...bmbouter:plugin-context-manager

I'm able to run the pulp-smash test with these changes so I think it's
working:
django-admin test
pulp_file.tests.functional.api.test_sync.BasicFileSyncTestCase.test_sync

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.

https://github.com/dralley/pulp_file/compare/typed-repositories...bmbouter: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.

An extensive description was given at open floor, but those logs aren't up
yet. The gist is that content modification/validation will require user
options, the plugin already knows that, so let's stop having the core
finalize the RepositoryVersion.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20191105/f36e8222/attachment.htm>


More information about the Pulp-dev mailing list