[Pulp-dev] Pulp 3 REST API Challenges
Jeff Ortel
jortel at redhat.com
Tue Apr 10 22:31:26 UTC 2018
On 04/10/2018 04:15 PM, Dennis Kliban wrote:
> On Tue, Apr 10, 2018 at 2:04 PM, Brian Bouterse <bbouters at redhat.com
> <mailto:bbouters at redhat.com>> wrote:
>
> These are good problem statements. I didn't understand all of the
> aspects of it, so I put some inline questions.
>
> My overall question is: are these related problems? To share my
> answer to this, I believe the first two problems are related and
> the third is separate. The classic divide and conquor approach we
> could use here is to confirm that the problems are unrelated and
> focus on resolving one of them first.
>
>
> I don't think all 3 are related problems. The motivation for grouping
> all together is that a subset of the action endpoints from problem 1
> are used to create repository versions and Problem 3 is a problem with
> the repository version creation API.
>
>
> On Mon, Apr 9, 2018 at 3:18 PM, Austin Macdonald
> <austin at redhat.com <mailto:austin at redhat.com>> wrote:
>
> Folks,
>
> Austin, Dennis, and Milan have identified the following issues
> with current Pulp3 REST API design:
>
> * Action endpoints are problematic.
> o Example POST@/importers/<plugin>/sync/
> o They are non-RESTful and would make client code
> tightly coupled with the server code.
> o These endpoints are inconsistent with the other parts
> of the REST API.
>
> Is self-consistency really a goal? I think it's a placeholder for
> consistency for REST since the "rest" of the API is RESTful. After
> reading parts of Roy Fielding's writeup of the definition of REST
> I believe "action endpoints are not RESTful" to be a true
> statement. Maybe "Action endpoints are problematic" should be
> replaced with "Action endpoints are not RESTful" perhaps and have
> the self-consistency bullet removed?
>
>
> +1 to "Action endpoints are not RESTful"
> +1 to removing the self-consistency language
>
> o DRF is not being used as intended for action endpoints
> so we have to implement extra code. (against the grain)
>
> I don't know much about this. Where is the extra code?
>
> * We don't have a convention for where plug-in-specific,
> custom repository version creation endpoints.
> o example POST@/api/v3/<where?>/docker/add/
> o needs to be discoverable through the schema
>
> What does discoverable via the schema ^ mean? Aren't all urls
> listed in the schema?
>
> I think of ^ problem somewhat differently. Yes all urls need to be
> discoverable (a REST property), but isn't it more of an issue that
> the urls which produce repo versions can't be identified
> distinctly from any other plugin-contributed url? To paraphrase
> this perspective: making a repo version is strewn about throughout
> the API in random places which is a bad user experience. Is that
> what is motivation url discovery?
>
>
> Yes. I envision a CLI that can discover new plugin
> repository-version-creating functionality without having to install
> new client packages. Allowing plugin writers to add endpoints in
> arbitrary places for creating repository versions will make it
> impossible for the client to know what all the possible ways of
> creating a repository version are.
Currently plugins can provide one (or more) arbitrary endpoints to
perform sync which is one form of creating a repository version. How is
the endpoint for creating a version by adding content any different?
>
> * For direct repository version creation, plugins are not
> involved.
> o validation correctness problem:
> https://pulp.plan.io/issues/3541
> <https://pulp.plan.io/issues/3541>
> o example:
> POST@/api/v3/repositories/<repository_id>/versions/
>
> I agree with this problem statement. In terms of scope it affects
> some plugin writers but not all.
>
>
> I think it affects all plugin writers. Even the File plugin needs to
> provide some validation when creating a repository version. Right now
> you can add a FileContent with the same relative path as another
> FileContent in the repository version. This should not be possible
> because it's not a valid combination of FileContent units in the same
> repository version.
>
>
> We would like to get feedback on these issues being sound and
> worth resolving before we resume particular solution
> discussion[1].
>
> Thanks,
> Austin, Dennis, and Milan
>
> [1]
> https://www.redhat.com/archives/pulp-dev/2018-March/msg00066.html
> <https://www.redhat.com/archives/pulp-dev/2018-March/msg00066.html>
>
>
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com <mailto:Pulp-dev at redhat.com>
> https://www.redhat.com/mailman/listinfo/pulp-dev
> <https://www.redhat.com/mailman/listinfo/pulp-dev>
>
>
>
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com <mailto:Pulp-dev at redhat.com>
> https://www.redhat.com/mailman/listinfo/pulp-dev
> <https://www.redhat.com/mailman/listinfo/pulp-dev>
>
>
>
>
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com
> https://www.redhat.com/mailman/listinfo/pulp-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20180410/8a5d575c/attachment.htm>
More information about the Pulp-dev
mailing list