Story #3173

Updated by over 2 years ago

A user should be able to make POST request to /api/v3/repositories/<id>/versions/ * Can specify an optional importer href.
* Multiple 'importer' values
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 one call are not accepted.
* 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 is not visible to import units. If the importer user until it is configured with 'mirror' sync mode, the user cannot expect the changes from add_many or remove_many ready 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/ needs to be removed.

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

new task should implement the algorithm described above. The task should lock on the importer, the new repository version, and the associated repository itself. The task should produce a new repository version even is created if the no errors occur. This includes cases where no content has not changed.
changes occurred.