@@ -37,22 +37,6 @@ In order to minimize space utilization, import/export operates on sets of
3737:term: `Artifacts<Artifact> ` only once per-export, rather than once for each
3838:term: `Repository ` being exported.
3939
40- .. note ::
41-
42- Export will not operate on :term: `RepositoryVersions<RepositoryVersion> ` that have
43- been synchronized using ``policy=on_demand ``. :term: `Artifacts<Artifact> ` must actually
44- exist in order to be exported - this is, after all the only way for the Downstream Pulp
45- instance to gain access to them!
46-
47- .. note ::
48-
49- Import and Export strictly control which directories may be read from/written to via
50- the settings options ``ALLOWED_IMPORT_PATHS `` and ``ALLOWED_EXPORT_PATHS ``.
51- These default to empty, if not explicitly set attempts to import or export will fail
52- with a validation error like
53-
54- ``"Path '/tmp/exports/' is not an allowed export path" ``
55-
5640Definitions
5741^^^^^^^^^^^
5842Upstream
@@ -87,6 +71,55 @@ Import order
8771 ModelResources be imported in order. Plugins are responsible for specifying the
8872 import-order of the ModelResources they own
8973
74+ Assumptions
75+ ^^^^^^^^^^^
76+
77+ The import/export workflow operates on a set of assumptions. Violating them will result
78+ in error-messages as described below.
79+
80+ On-Demand content not supported
81+ -------------------------------
82+
83+ Export will not operate on :term: `RepositoryVersions<RepositoryVersion> ` that have
84+ been synchronized using ``policy=on_demand `` or ``policy=streamed ``. :term: `Artifacts<Artifact> `
85+ must actually exist in order to be exported - this is, after
86+ all the only way for the Downstream Pulp instance to gain access to them!
87+
88+ If a repository is specified for export that utilized on-demand/streamed syncing, the
89+ export will fail with a RuntimeError:
90+
91+ ``Remote artifacts cannot be exported. ``
92+
93+ Export/Import Directories must be explicitly allowed
94+ ----------------------------------------------------
95+
96+ Import and Export strictly control which directories may be read from/written to via
97+ the settings options ``ALLOWED_IMPORT_PATHS `` and ``ALLOWED_EXPORT_PATHS ``.
98+ These default to empty - if they not explicitly set, attempts to import or export will fail
99+ with a validation error like
100+
101+ ``"Path '/tmp/exports/' is not an allowed export path" ``
102+
103+ Installed plugins must match
104+ ----------------------------
105+
106+ A Downstream must support the complete set of plugins present in a given export. If the
107+ export includes plugins that are not installed in the Downstream, an import attempt will
108+ fail with a validation error like
109+
110+ ``Export uses pulp_rpm which is not installed. ``
111+
112+ Version-compatibility required
113+ ------------------------------
114+
115+ The export-to-import workflow is built on the assumption that the Upstream and
116+ Downstream instances are running "compatible" versions of pulpcore and plugins. In this
117+ context, "compatible" is defined as **"share the same X.Y version" **. If this is not the
118+ case, an import attempt will fail with a validation error like
119+
120+ ``Export version 3.14.15 of pulpcore incompatible with installed version 3.16.3. ``
121+
122+
90123Exporting
91124^^^^^^^^^
92125
0 commit comments