[Pulp-dev] proposing changes to pulp 3 upload API
Dennis Kliban
dkliban at redhat.com
Thu Jun 29 12:47:25 UTC 2017
On Thu, Jun 29, 2017 at 7:40 AM, Michael Hrivnak <mhrivnak at redhat.com>
wrote:
>
> On Thu, Jun 29, 2017 at 7:22 AM, Dennis Kliban <dkliban at redhat.com> wrote:
>
>>
>> The many to many relationship is between Artifact and ContentArtifact.
>> This allows a content unit to have multiple Artifacts associated with it.
>>
>
> 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.
>
> Also, what is a ContentArtifact?
>
>
Here are some definitions for the new proposal:
- Artifact - a file stored in pulp
- Content - a named collection of 0 or more Artifacts that can be
associated with a repository as a single unit
- ContentArtifact - a relationship between an Artifact and Content.
There is 0 or more ContentArtifacts for each Content.
- Repository - A named collection of content.
- RepositoryContent - a relationship between Content and Repository.
In the proposal we have in the MVP we have the following:
- FileUpload - Uploaded file that is used to create Artifacts and is
then removed (definition for this is not present in the glossary of MVP)
- 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.
- 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.
- Repository - A named collection of content.
- RepositoryContent - a relationship between Content and Repository
(also not in the glossary of the MVP)
In the MVP in order to add a unit to a repository, a user would:
1. Create a FileUpload by uploading a file
2. Create an Artifact and a Content with one API call
3. Associate a Content with a Repository
4. Delete the FileUpload (or some cleanup job would do that for the user)
The newly proposed workflow:
1. Create an Artifact by uploading a file
2. 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.
3. Associate a Content with a repository.
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.
>
> --
>
> Michael Hrivnak
>
> Principal Software Engineer, RHCE
>
> Red Hat
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20170629/e391b2a9/attachment.htm>
More information about the Pulp-dev
mailing list