Project

Profile

Help

Story #5086

Updated by daviddavis over 4 years ago

h3. Problem 

 To allow offline update or installation, as well as "cheap" hosting on a "dumb" http file server, export of pulp content distribution  
 is required. Pulp2 has this in the manual https://docs.pulpproject.org/en/2.18/plugins/pulp_rpm/user-guide/recipes.html#export-repositories-and-repository-groups 

 h3. Design 

 In Pulp3 an 'exporter' can send content out of a Pulp system. An exporter named FileSystemExporter should be created that accepts a the full path to a file system the place it should export content. FileSystemExporter should be a base abstract class that contains export. Additionally the logic to export a set of content to a file system location. If the content is on the filesystem, it will use hardlinks. Otherwise (eg using S3) it will write the file to the filesystem. 

 The base FileSystemExporter should be extended in core by two Master classes, FileSystemRepoExporter and FileSystemPublicationExporter. The FileSystemRepoExporter takes either a 'repository' or 'repository_version' but not both. If 'repository' it will export publish the latest repository_version. The FileSystemPublicationExporter takes a publication and exports it. 

 A plugin can extend and define a Detail class for one of these two Master classes in order to export its content. 

 +note+ Explore the possibility to export from multiple repos 

 h3. Implementation 

 It will write the entire repository to a temporary area on-disk and then shell out to rsync. 

 h3. On Demand Content 

 This feature does not work for on-demand content because the content must be present locally for Pulp to write it to a filesystem.

Back