Story #6134: [EPIC] Pulp import/export
As a User, I can create an Exporter to export a specific set of RepositoryVersions between 2 versions
We already mention this in the design doc under "Working with PulpExporter".
"repository-versions - (optional) list of repository-versions to be exported. By default, the export uses latest version for repositories listed on the exporter."
Katello wants more control on the incremental/delta exports between 2 versions. For example Katello wants to say give me the incrementals between Version X and Version Y to handle the following scenario
"I have 3 satellites importing from the Master at different version levels at different times."
This means we are going to have issues if we used the same exporter for all three satellites. While the work around is probably creating a new exporter per sat, it adds complication to the user workflow.
Getting the incrementals will help us manage this better.
Updated by email@example.com over 2 years ago
Another use case for this is the fact that incremental exports aren't reproducible.
- If there is any corruption on the export, i cannot regenerate it
- If it accidentally gets deleted, i can't regenerate it
- if a user is having a problem they can't easily re-create the problem, making troubleshooting/support really difficult
Updated by ggainey over 2 years ago
- Add 'start_versions' parameter
- Like versions=, accepts a list of RepositoryVersion pulp_hrefs
- Produces an incremental between start_versions= and versions=
- If versions= is not specified, produces an incremental between start_versions= and current_version()
- last_export.params for the PulpExporter will identify start_versions= if specified
NOT VALID if
- start_versions= fails to cover every repo in Exporter's repository list
- There exists Repostory-A (
- rA has 10 RepositoryVersions (rv),
- There exists a PulpExporter for
- pe1 has a last_export (
last) that identifies the last export as
- rA.rv9 is RV-CURR, rv3 is LAST
Command combinations and their output:
pe1 POST: full export of RV-CURR, last.RV-CURR
pe1 POST --full=False: diff(LAST, RV-CURR), last.RV-CURR
pe1 POST --versions=[rv7]: full export of rv7, last.rv7
pe1 POST --full-False --versions=[rv5]: diff(LAST, rv5), last.rv5
pe1 POST --full=False --start_versions=[rv1] : diff(rv1, CURR), last.rv9
pe1 POST --full=False --start_versions=[rv3] --versions=[rv6]: diff(rv3, rv6), last.rv6
Specifying start_versions=[rv0] is the equivalent of doing a full-export of the current-version of the repository.