<div dir="ltr"><div>Austin reported to me that this msg didn' show up in his inbox. I didn't get it either.<br><a href="https://www.redhat.com/archives/pulp-dev/2018-April/msg00136.html">https://www.redhat.com/archives/pulp-dev/2018-April/msg00136.html</a><br><br></div>I've opened up a ticket, so until then, we may need to check the archives.<br><a href="https://www.redhat.com/archives/pulp-dev/index.html">https://www.redhat.com/archives/pulp-dev/index.html</a><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 12, 2018 at 5:49 PM, Dennis Kliban <span dir="ltr"><<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">On Thu, Apr 12, 2018 at 2:49 PM, Jeff Ortel <span dir="ltr"><<a href="mailto:jortel@redhat.com" target="_blank">jortel@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><div><div class="m_1987108142027587660m_-8082973026962369681m_2359146138886405596m_-6975650155196327159h5">
<br>
<br>
<div class="m_1987108142027587660m_-8082973026962369681m_2359146138886405596m_-6975650155196327159m_7479694530690954398moz-cite-prefix">On 04/11/2018 01:13 PM, Dennis Kliban
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Apr 10, 2018 at 6:44 PM, Jeff
Ortel <span dir="ltr"><<a href="mailto:jortel@redhat.com" target="_blank">jortel@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span> <br>
<br>
<div class="m_1987108142027587660m_-8082973026962369681m_2359146138886405596m_-6975650155196327159m_7479694530690954398m_8733354028057534058m_-4789151742247051920moz-cite-prefix">On
04/10/2018 04:15 PM, Dennis Kliban wrote:<br>
</div>
</span>
<div>
<div class="m_1987108142027587660m_-8082973026962369681m_2359146138886405596m_-6975650155196327159m_7479694530690954398m_8733354028057534058h5">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Apr 10, 2018
at 2:04 PM, Brian Bouterse <span dir="ltr"><<a href="mailto:bbouters@redhat.com" target="_blank">bbouters@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>These are good problem statements.
I didn't understand all of the aspects
of it, so I put some inline questions.<br>
<br>
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.<br>
<br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>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. <br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote"><span>On
Mon, Apr 9, 2018 at 3:18
PM, Austin Macdonald <span dir="ltr"><<a href="mailto:austin@redhat.com" target="_blank">austin@redhat.com</a>></span>
wrote:<br>
</span><span>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>Folks,</div>
<div><br>
</div>
<div>Austin, Dennis,
and Milan have
identified the
following issues
with current Pulp3
REST API design:</div>
<div>
<ul>
<li>Action
endpoints are
problematic.<br>
</li>
<ul>
<li>Example
POST@/importers/<plugin>/sync/</li>
<li>They are
non-RESTful
and would make
client code
tightly
coupled with
the server
code.</li>
<li>These
endpoints are
inconsistent
with the other
parts of the
REST API.</li>
</ul>
</ul>
</div>
</div>
</blockquote>
</span>
<div>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?<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>+1 to "Action endpoints are not
RESTful"<br>
</div>
<div>+1 to removing the self-consistency
language<br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div class="gmail_extra">
<div class="gmail_quote"><span>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<ul>
<ul>
<li>DRF is not
being used as
intended for
action
endpoints so
we have to
implement
extra code.
(against the
grain)</li>
</ul>
</ul>
</div>
</div>
</blockquote>
</span>
<div>I don't know much about
this. Where is the extra
code?<br>
</div>
<span>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<ul>
<li>We don't have
a convention for
where
plug-in-specific,
custom
repository
version creation
endpoints.<br>
</li>
<ul>
<li>example
POST@/api/v3/<where?>/docker/a<wbr>dd/</li>
<li>needs to be
discoverable
through the
schema</li>
</ul>
</ul>
</div>
</div>
</blockquote>
</span>
<div>What does discoverable
via the schema ^ mean?
Aren't all urls listed in
the schema?<br>
<br>
</div>
<div>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?<br>
</div>
<span>
<div> </div>
</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>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. <br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div class="gmail_extra">
<div class="gmail_quote"><span>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<ul>
<li>For direct
repository
version
creation,
plugins are not
involved.<br>
</li>
<ul>
<li>validation
correctness
problem: <a href="https://pulp.plan.io/issues/3541" target="_blank">https://pulp.plan.io/issues/35<wbr>41</a></li>
<li>example:
POST@/api/v3/repositories/<rep<wbr>ository_id>/versions/</li>
</ul>
</ul>
</div>
</div>
</blockquote>
</span>
<div>I agree with this
problem statement. In
terms of scope it affects
some plugin writers but
not all.<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>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. <br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
</div>
Not necessarily. Two files with the same relative path
will have different digest (different content). The
assumption that they both cannot be in the same
repository makes assumptions about how the repository is
used which I don't think is a good idea. Image two
different versions of abc.iso.<span><br>
<br>
</span></div>
</blockquote>
<div><br>
</div>
<div>Why is it bad to assume that a repository version is
going to be published? What are the other ways to use a
repository version?<br>
</div>
</div>
</div>
</div>
</blockquote>
<br></div></div>
The repository may not be publish and/or may not be published by the
FilePublisher in the file plugin project. A user may want to sync
and store many version of an iso in the repository and then
selectively <i>add</i> a specific version to another repository for
promotion work flows. Also, the user could use another (custom)
publisher that deals differently with multiple files with the same
path in the repository. The FilePublisher currently publishes the
newest. My point being, we, really cannot assume how the repository
will be used or which publisher <i>may</i> publish it.<span><br>
<br></span></div></blockquote><div><br></div></div></div><div>The problem was initially stated as "For direct repository version creation, plugins are not involved". It sounds like you disagree that this is a problem. Can you confirm this by telling us if plugins should be able to provide validation for this API provided by core?<br></div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><span>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
A File repository version cannot be properly published if
it contains 2 FileContent units that both have the same
relative path. The publisher has to decide which
FileContent to publish at the relative path. That decision
cannot be made intelligently by the publisher. The
decision on which content unit to include in the
repository version rests with the user that is creating
the repository version. When a user tries to create a
repository version with a FileContent that has the same
relative path as another FileContent that was added
previously, Pulp needs to inform the user that there is a
conflict (and not create the repositiory version). This
validation can only be provided by the File plugin. <br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div class="gmail_extra">
<div class="gmail_quote">
<div> <br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
<div dir="ltr">
<div>We would like to
get feedback on these
issues being sound and
worth resolving before
we resume particular
solution
discussion[1].</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Austin, Dennis, and
Milan</div>
<div><br>
</div>
<div>[1] <a href="https://www.redhat.com/archives/pulp-dev/2018-March/msg00066.html" target="_blank">https://www.redhat.com/archive<wbr>s/pulp-dev/2018-March/msg00066<wbr>.html</a><br>
</div>
<div><br>
</div>
</div>
<br>
</span><span>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br>
</span></blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
<br>
<fieldset class="m_1987108142027587660m_-8082973026962369681m_2359146138886405596m_-6975650155196327159m_7479694530690954398m_8733354028057534058m_-4789151742247051920mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
Pulp-dev mailing list
<a class="m_1987108142027587660m_-8082973026962369681m_2359146138886405596m_-6975650155196327159m_7479694530690954398m_8733354028057534058m_-4789151742247051920moz-txt-link-abbreviated" href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a>
<a class="m_1987108142027587660m_-8082973026962369681m_2359146138886405596m_-6975650155196327159m_7479694530690954398m_8733354028057534058m_-4789151742247051920moz-txt-link-freetext" href="https://www.redhat.com/mailman/listinfo/pulp-dev" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a>
</pre>
</blockquote>
<br>
</span></div>
<br>
______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</span></div>
<br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div></div></div><br></div></div>
<br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>