As a plugin writer, I have Master/Detail Distributions
If plugin writers want to customize distributions (or use different content apps), they have to "invent" new REST endpoints (e.g. pulp_docker has a "docker-distributions" endpoint).
This leads to inconsistent API with unexpected location of distribution endpoints.
Switching to Master/Detail allows plugins to define customized Distribution at 'well-known' endpoints (e.g.
The Models offered by core will be: (see also #4715)
BaseDistribution: a (non-abstract) MasterModel containing name, base_path, content_guard, and remote. This class can be used in plugins that don't use publications
Distribution: a subclass of
BaseDistribution containing publication, publisher, repository. This class is the "standard" Distributor that will be subclassed by plugins using the standard content app
We will have the Master/Detail Distribution viewset overridden by the plugin. For convenience, plugin writers should not be forced to redefine the create/update/remove async tasks, i.e. they should create the respective detail model instance.
pulpcore db migrations will have to be re-generated for this change; users will have to redo their data bases. (this is necessary for rc2 anyway (because of #4678))
Optional: If possible, the current
.../distributions/ endpoint should still work. It will be deprecated in rc2 and removed in rc3.
Switch to Master/Detail Distribution
and update the outdated parts of the README.
Required PR: https://github.com/pulp/pulpcore/pull/117 Required PR: https://github.com/pulp/pulpcore-plugin/pull/95 Required PR: https://github.com/PulpQE/pulp-smash/pull/1205
ref #4785 https://pulp.plan.io/issues/4785