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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Pulp-dev mailing list [email protected] https://www.redhat.com/mailman/listinfo/pulp-dev
