Project

Profile

Help

Story #4785

closed

As a plugin writer, I have Master/Detail Distributions

Added by gmbnomis over 5 years ago. Updated over 4 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
Start date:
Due date:
% Done:

100%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Quarter:

Description

Description

Problem

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.

Solution

Switching to Master/Detail allows plugins to define customized Distribution at 'well-known' endpoints (e.g. .../distributions/docker/docker/)

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.


Related issues

Related to Pulp - Task #4715: Remove 'publisher', 'publication', and 'repository' from BaseDistributionCLOSED - CURRENTRELEASEgmbnomis

Actions
Related to Ansible Plugin - Issue #4820: Update pulp_ansible to use RepositoryVersionDistributionCLOSED - CURRENTRELEASEActions
Related to Pulp - Test #4882: Add back tests related to overlapping base_pathCLOSED - COMPLETEkersomActions

Also available in: Atom PDF