As an authenticated user, I can create a new repository version
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, the new repository version, and the associated repository itself.
Please register to edit this issue