Story #6763
closed
Story #6134: [EPIC] Pulp import/export
As a User, I can create an Exporter to export a specific set of RepositoryVersions between 2 versions
Status:
CLOSED - CURRENTRELEASE
Description
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.
- Copied from Story #6566: As a User, I can create an Exporter to export a specific set of RepositoryVersions (rather than just current() for a set of Repositories) added
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
- Assignee deleted (
ggainey)
- Priority changed from High to Normal
- % Done changed from 100 to 0
- Priority changed from Normal to High
Proposal:
- 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
- full=False
- start_versions= fails to cover every repo in Exporter's repository list
Example
- There exists Repostory-A (
rA
)
- rA has 10 RepositoryVersions (rv),
rv0..rv9
- There exists a PulpExporter for
rA
(pe1
)
- pe1 has a last_export (
last
) that identifies the last export as rv3
- 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.
- Status changed from NEW to ASSIGNED
- Assignee set to ggainey
- Status changed from ASSIGNED to POST
- Status changed from POST to MODIFIED
- % Done changed from 0 to 100
- Sprint/Milestone set to 3.5.0
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Also available in: Atom
PDF
Taught /exports/ about start_versions=, to allow for arbitrary incremental exports.
closes #6763