I would do a variation of 1. : Provide a ReadonlyContentViewSet with only GET mixed in and leave the 'standard' ContentViewset as is. Cheers, Matthias
On Wed, 2 Oct 2019 16:16:14 +0200 Tatiana Tereshchenko <ttere...@redhat.com> wrote: > Current implementation of ContentViewset > <https://github.com/pulp/pulpcore/blob/master/pulpcore/app/viewsets/content.py#L98-L102> > includes > mixins for create (POST) and retrieve/list (GET). > In case a plugin doesn't need to support POST for a content endpoint, > a plugin writer compiles a viewset from the mixins they need, e.g. > distribution trees and custom metadata > <https://github.com/pulp/pulp_rpm/blob/master/pulp_rpm/app/viewsets.py#L233-L258> > (same > use case is expected for modularity endpoints) > This leads to the inconsistent REST API. > > # ContentViewset is used > /pulp/api/v3/content/rpm/advisories/ > > # custom plugin content viewset > /pulp/api/v3/distribution_trees/rpm/distribution_trees/ > > Possible solutions: > 1. Make ContentViewset more generic (no mixins, or only GET ones?) > and let plugins include any mixins they need. > This option might be painful to switch to for plugin writers, because > every plugin will be affected and will need to make this change. > At the same time probably not many plugins support upload for every > content type, so in many cases the POST is broken/not used anyway. > > 2. Disable POST at the plugin level in some other way. > I'm not sure if there is any native option to disable it. > Hacky way is to override `create` method which will return > appropriate HTTP error that POST is not supported. > > 3. Make plugin writers manually define a proper endpoint name. > Apart from not being reliable, I'm not sure how to do it because of > how we tweak endpoint generation. > Notice the distribution trees example ^, "distribution_trees" is used > twice in the endpoint. > > 4. Any other solutions? Easy ones which I missed? > > Thank you, > Tanya
pgp_gA1DH1Shn.pgp
Description: OpenPGP digital signature
_______________________________________________ Pulp-dev mailing list Pulp-dev@redhat.com https://www.redhat.com/mailman/listinfo/pulp-dev