Project

Profile

Help

Story #3822

Updated by dkliban@redhat.com almost 5 years ago

h1. Description 

 Pulp 3 2 will provide a tool called *pulp-2to3-migrate*. This tool is going to be a Pulp 3 plugin. Django 2.x app with a sqllite or postgresql database. This tool is going to be modular. Some functionality will come from the core, but specific implementation for each content type will be provided by the plugins. 

 Users of this tool will be required *pulp-2to3-migrate content* command is going to write a Migration Plan which is a JSON document that describes which content, repositories, importers, and distributors get migrated migrate content units from Pulp 2 to Pulp 3. Users It will be able to use Pulp 2 to generate a Migration plan for migrating everything.  

 h1. Features 

 h3. Pulp 2 will provide a REST API that returns a default Migration Plan.  

 This Migration Plan will migrate all content, all repositories, all importers, and all distributors. 

 h3. Pulp 3 will provide a REST API that will accept have two parameters: Migration Plan modes of operation: in-place and concurrency.  

 This API remote. It will dispatch one more tasks record progress in the database so it can know where to perform the migration. The default concurrency will be (Pulp 3 worker count) - 1. The concurrency will determine the number of tasks that will be dispatched in parallel. The tasking system will limit one migration "operation" at a time, although many tasks may run concurrently for that operation. resume on subsequent runs. 

 h1. Content Migration implementation details 

 For each content unit discovered during migration of content, *pulp-2to3-migrate content*, the following will be performed: 

 *In-place mode:* 
 * create a hard link in /var/lib/pulp/artifacts/ directory 
 * create Artifact in the database 
 * create Content in the database 
 * record progress by storing references for pulp 2 and pulp 3 content unit 

 *Remote mode:* 
 * create an Artifact using REST API 
 * create a Content using REST API 
 * record progress by storing references for pulp 2 and pulp 3 content unit 

Back