pulp/pulp — pull request #491 by jortel (2013-05-24 13:51:31+00:00)
Title: atomic node publish

Modify the publisher(s) and publishing flows to be atomic. Basically, we just publish to a temp directory then, rename it in the end. The concept of *commit* performs the renaming and clean up of the temp dir. Making this a distinct step, provides opportunity to verify the publishing before committing it (to be added later).

To support this, the published data needed to be modified slightly. And for the better. A leftover from the prototype was to inject the full download URL into each unit as it was published. In this PR, I modified this to add the base URL in the manifest and *not* add the URL in each unit. Instead, the importer (child node) will derive the full URL by joining the base-url and the relative path. This relies on an intuitive publishing convention (base_url + relative_path = URL) but provides for more flexibility. Eg: suppport for: https://fedorahosted.org/pulp/wiki/AlternateRepoSource.