Project

Profile

Help

Task #5837

Story #3821: As a user, I can migrate from Pulp 2 to Pulp 3

Specify pulp2_distributor_repository_ids instead of distributor_ids

Added by ipanova@redhat.com 4 days ago. Updated 2 days ago.

Status:
NEW
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Platform Release:
Blocks Release:
Backwards Incompatible:
No
Groomed:
Yes
Sprint Candidate:
No
Tags:
Pulp 2 to 3 Migrate
QA Contact:
Complexity:
Smash Test:
Verified:
No
Verification Required:
No
Sprint:
Sprint 63

Description

Motivation

Distributor can't be identified by distributor_id, the uniqueness constraint for pulp2 distributor is `distributor_id` + `repo_id`.
pulp-admin creates a distributor with distributor_id=distributor_type_id, so we can't rely on distributor_id at all. It can be the same for many repositories.

Solution

Migration plan will accept pulp2_distributor_repository_ids( repo_id of the distributor associated to it). If repo has 2 distributors, we will migrate both of them.

Update Migration plan parsing: fetch distributors from the mentioned repos, filter only those distributors type that are specified in the Migrator, create a namedtuple that will contain pulp2repo _id( we want to migrate) and distributor Object ID

Example of a plan


 {
    "plugins": [
       { 
         "type": "iso",  # it should be a pulp2 type
         "repositories" :  [
           {
             "name": "foo",
             "pulp2_importer_repository_id":  "my_repo_id to use to find an importer to migrate" 
             "repository_versions": [
                 {
                   "pulp2_repository_id": "idA",
                   "distributor_ids":  ["pulp2_distributor_repository_id1", "pulp2_distributor_repository_id2"] 

                  },                
                  {
                    "pulp2_repository_id": "idB",
                    "distributor_ids":  ["pulp2_distributor_repository_id3"]
                  },
               ]
            }
        ]
     },
     {
       "type": "docker",
     }
  ]
}

Example of parsed plan


repodistribution = namedtuple('repodistribution', ['repo_id', 'dist_ids'])

 pulp3_repo_setup = {'foo': {'pulp2_importer_repository_id': 'my_repo_id', 'versions': [repodistribution('idA', [ObjectId("5de97a32c998ac5dffb0d6a4"), ObjectId("5de97a33c998ac5dffb0d6aa")]), repodistribution('idB', [ ObjectId("5de97a33c998ac5dffb0d6ad")])]}}

History

#1 Updated by ipanova@redhat.com 4 days ago

  • Description updated (diff)

#2 Updated by ttereshc 4 days ago

  • Tracker changed from Issue to Task
  • Subject changed from Specify pulp2_distributor_repository_id instead of distributor_id to Specify pulp2_distributor_repository_ids instead of distributor_ids
  • Description updated (diff)
  • % Done set to 0

#3 Updated by ipanova@redhat.com 2 days ago

  • Description updated (diff)

#4 Updated by ipanova@redhat.com 2 days ago

  • Sprint set to Sprint 63

#5 Updated by ipanova@redhat.com 2 days ago

  • Description updated (diff)

#6 Updated by ipanova@redhat.com 2 days ago

  • Description updated (diff)

#7 Updated by ipanova@redhat.com 2 days ago

  • Parent task set to #3821
  • Tags Pulp 2 to 3 Migrate added

#8 Updated by ipanova@redhat.com 2 days ago

  • Groomed changed from No to Yes

Please register to edit this issue

Also available in: Atom PDF