Project

Profile

Help

Issue #3228

Updated by bmbouter over 6 years ago

A user should be able to make POST request to /api/v3/repositories/<id>/versions/ in order to create a new repository version. The user should be able to provide 3 optional arguments: importer, add_many, and remove_many. A task should be spawned to create a new repository version. The repository version starts with the content from previous version, if any, and then adds units from add_many, then removes content from remove_many, and then uses the importer to import units. If the importer is configured with 'mirror' sync mode, the user cannot expect the changes from    add_many or remove_many to be present in the new version. 


 The ViewSet for the RepositoryVersion model needs to be extended to handle POST requests. The repository version API endpoint should accept 3 parameters: importer, add_many, remove_many. 

 The detail 'sync' view for the Importer viewset needs to be removed.  

 The sync task in pulp/pulpcore/pulpcore/app/tasks/importer.py needs to be removed. 

 A repository_version task should be added to pulp/pulpcore/pulpcore/app/tasks/repository.py 

 The new task should implement the algorithm described above. The task should lock on the importer, importer and the new repository version, and the associated repository itself. version.

Back