[Pulp-dev] MVP Today - Importer support in plugin API

Jeff Ortel jortel at redhat.com
Tue Apr 18 13:40:41 UTC 2017


In preparation of the MVP meeting today, this is the background for the work that I have done so far in the
area of Importer support for pulp3.

Problem Statement
------------------

To provide tooling in the Plugin API to support repository synchronization.  During a sync, and importer will
typically need to do the following:

1. Download and analyze metadata from the remote repository.
2. Determine which content (units) are in the remote that are not in the pulp repository.
3. Determine which content (units) are in the local that are not in the remote repository.

4. Download artifacts related to content that needs to be added.
5. Create content and artifacts (identified in #2) and insert into DB (as needed).
6. Associate content (units) to the repository.
7. Add catalog entries for artifacts.
8. Disassociate content (identified in #3).

Terms
--------

"Remote"
    a repository being synchronized with.

"Tooling"
    supplemental classes included in the plugin API intended to make writing plugin's easier
    and in standardized ways.


Proposed Solution
------------------

When considering tooling provided by the Plugin API, it is very important to strike an appropriate division of
responsibility. The proposed[1] solution places the division as follows:

The PLUGIN is responsible for downloading and analyzing the metadata and determining what content need to be
added and removed (1-3) from the repository.  And, the knowledge of how to download each artifact.

The PLATFORM provides tooling in the plugin API to support downloading metadata and artifacts, creating and
associating content and managing catalog entries.  (4-8)

Although encouraged, the proposed tooling in the plugin API is not required to be used by the plugin writer.
It is intended to support typical use cases and may not be a good fit for some plugins.  Cooperation with and
support of the Streamer is paramount when considering the division of responsibility and the tooling in the
plugin API.



[1] https://github.com/pulp/pulp/pull/2876

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 847 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20170418/151a82b4/attachment.sig>


More information about the Pulp-dev mailing list