<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
<div class="moz-cite-prefix">On 4/4/19 2:35 PM, Daniel Alley wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAK1D4mBFch81_VL_yA2thUzuSLiRqWB_Ge3EoqqT+KXGn8+2+g@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>Content copy between repositories is critically important
to Katello integration and is something that we have not
really addressed yet. It also needs to be completed before
the RPM plugin can begin work on depsolving. The story that
results from this discussion should probably be put on one of
the next 1-3 sprints and not wait any longer than that.</div>
<div><br>
</div>
<div>Repositories are generic to all types of content, but copy
operations between repositories will need type-specific
options defined by the plugin for e.g. advanced copy w/
depsolving. Therefore we need to find a design for this
functionality where it will make sense that makes sense from a
usage perspective and an implementation perspective.</div>
<div><br>
</div>
<div>To get this discussion started, here's some suggestions
about how this could work from the user perspective (presented
without much thought put into how it would be implemented).</div>
<div><br>
</div>
Create a "Copier" object, like a Remote, that stores it's own
settings and has one or many endpoints (like "/sync/") that can
be POSTed to and return a task and create a new repository
version.<br>
<div>
<div><br>
</div>
<div style="margin-left:40px">POST
/pulp/v3/api/copiers/rpm/$endpoint_name/
content_units=[...] [more params...]<br>
</div>
<div style="margin-left:40px"><br>
</div>
The copier would store settings such as "recursive" and the
"source" and "destination" repositories. And let's say they
can be overriden.<br>
</div>
<div>
<div style="margin-left:40px"><br>
</div>
Or, create new endpoints without any associated DB models,
like one-shot upload does:</div>
<div><br>
</div>
<div style="margin-left:40px">variant 1: POST
/pulp/v3/api/content/rpm/packages/copy/ content_units=[...]
source="..." destination="..." [more params...]</div>
<div style="margin-left:40px"><br>
</div>
<div style="margin-left:40px">variant 2: POST
/pulp/v3/api/copy/rpm/package/ content_units=[...]
source="..." destination="..." [more params...]</div>
<div style="margin-left:40px"><br>
</div>
<div>
<div>Since basic copy support (just copying the units, no
depsolving, etc.) could in theory be implemented completely
generically, it would be nice if we could provide that for
free somehow. But I don't immediately see a way of doing
so.</div>
<div><br>
</div>
<div>I welcome any suggestions or input.<br>
</div>
</div>
</div>
</blockquote>
<p>A 'copier' object that has to be CRUD'd seems like unnecessary
complication from a user perspective. I would go with the 'one
shot approach' at first, i think most users are going to desire
that over an actual object.</p>
<p>Justin<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CAK1D4mBFch81_VL_yA2thUzuSLiRqWB_Ge3EoqqT+KXGn8+2+g@mail.gmail.com">
<div dir="ltr">
<div>
<div><br>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
Pulp-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a>
<a class="moz-txt-link-freetext" href="https://www.redhat.com/mailman/listinfo/pulp-dev">https://www.redhat.com/mailman/listinfo/pulp-dev</a>
</pre>
</blockquote>
</body>
</html>