Issue #3228
closedAs an authenticated user, I can create a new repository version
Description
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.
Related issues
Updated by bmbouter almost 7 years ago
- Description updated (diff)
It should also lock on the repository itself so that two repo versions associated with 1 repo are not running at the same time. I made a small edit as such.
Updated by dkliban@redhat.com almost 7 years ago
- Status changed from NEW to CLOSED - DUPLICATE
- Parent issue deleted (
#3209)
Updated by dkliban@redhat.com almost 7 years ago
- Is duplicate of Story #3173: As a plugin author, I have documentation on how to implement a sync operation for my importer added