Project

Profile

Help

Issue #3228

closed

As an authenticated user, I can create a new repository version

Added by dkliban@redhat.com almost 7 years ago. Updated over 5 years ago.

Status:
CLOSED - DUPLICATE
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
OS:
Triaged:
No
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

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

Is duplicate of Pulp - Story #3173: As a plugin author, I have documentation on how to implement a sync operation for my importerCLOSED - DUPLICATE

Actions

Also available in: Atom PDF