<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 29, 2017 at 7:40 AM, Michael Hrivnak <span dir="ltr"><<a href="mailto:mhrivnak@redhat.com" target="_blank">mhrivnak@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span class="gmail-"><br><div class="gmail_quote">On Thu, Jun 29, 2017 at 7:22 AM, 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><div><br></div></span><div>The many to many relationship is between Artifact and ContentArtifact. This allows a content unit to have multiple Artifacts associated with it.</div></blockquote></div><br></span>Could you elaborate on this? A content unit can have multiple artifacts just by artifact having a foreign key to a content unit. That's the one-to-many relationship we have on the model now in 3.0-dev.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Also, what is a ContentArtifact?<span class="gmail-"><br><br clear="all"></span></div></div></blockquote><div><br></div><div>Here are some definitions for the new proposal:<br></div><ul><li>Artifact - a file stored in pulp</li><li>Content - a named collection of 0 or more Artifacts that can be associated with a repository as a single unit</li><li>ContentArtifact - a relationship between an Artifact and Content. There is 0 or more ContentArtifacts for each Content.</li><li>Repository - A named collection of content.</li><li>RepositoryContent - a relationship between Content and Repository. </li></ul><div><br>In the proposal we have in the MVP we have the following:<br><ul><li>FileUpload - Uploaded file that is used to create Artifacts and is then removed (definition for this is not present in the glossary of MVP)<br></li><li>Artifact - A file associated with one content (unit). Artifacts are not shared between content (units). Create a content unit using an uploaded file ID as the source for its metadata. Create Artifacts associated with the content unit using an uploaded file ID for each; commit as a single transaction.</li><li>Content (unit) - A single piece of content manged by Pulp. Each file associated with a content (unit) is called an Artifact. Each content (unit) may have zero or many Artifacts.</li><li>Repository - A named collection of content.</li><li>RepositoryContent - a relationship between Content and Repository (also not in the glossary of the MVP)<br></li></ul><p>In the MVP in order to add a unit to a repository, a user would:</p><ol><li>Create a FileUpload by uploading a file<br></li><li>Create an Artifact and a Content with one API call</li><li>Associate a Content with a Repository</li><li>Delete the FileUpload (or some cleanup job would do that for the user)</li></ol><p>The newly proposed workflow:</p><ol><li>Create an Artifact by uploading a file</li><li>Create a Content by specifying which Artifact(s) belongs to the Content and their relative paths inside the unit. This creates ContentArtifacts for each relationship.</li><li>Associate a Content with a repository.</li></ol><p>In the MVP workflow, once an FileUpload is deleted, it's hard to create another Content from that file. I am sure we can come up with a way to do it, but it won't be as straight forward as the above workflow.</p><p></p></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span class="gmail-"><div><br></div>-- <br><div class="gmail-m_7153167500244933577gmail_signature"><div dir="ltr"><p style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"><span style="margin:0px;padding:0px">Michael</span> <span style="margin:0px;padding:0px">Hrivnak</span></p><p style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"></p><span style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"><span style="margin:0px;padding:0px">Principal Software Engineer</span><span style="margin:0px;padding:0px">, <span style="margin:0px;padding:0px">RHCE</span></span> </span><span style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px"></span><br style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px"><p style="color:rgb(0,0,0);font-family:overpass-mono,monospace;font-size:10px;margin:0px;padding:0px">Red Hat</p></div></div>
</span></div></div>
</blockquote></div><br></div></div>