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 8 months ago. Updated 3 months ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Sprint/Milestone:
Start date:
Due date:
% Done:

100%

Estimated time:
Platform Release:
Groomed:
Yes
Sprint Candidate:
No
Tags:
Sprint:
Sprint 64

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( distributor we want to use to create Distribution)

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")])]}}

Associated revisions

Revision 9b06d565 View on GitHub
Added by dalley 7 months ago

Specify pulp2_distributor_repository_ids instead of distributor_ids

closes: #5837 https://pulp.plan.io/issues/5837

Revision 9b06d565 View on GitHub
Added by dalley 7 months ago

Specify pulp2_distributor_repository_ids instead of distributor_ids

closes: #5837 https://pulp.plan.io/issues/5837

Revision 9b06d565 View on GitHub
Added by dalley 7 months ago

Specify pulp2_distributor_repository_ids instead of distributor_ids

closes: #5837 https://pulp.plan.io/issues/5837

History

#1 Updated by ipanova@redhat.com 8 months ago

  • Description updated (diff)

#2 Updated by ttereshc 8 months 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 8 months ago

  • Description updated (diff)

#4 Updated by ipanova@redhat.com 8 months ago

  • Sprint set to Sprint 63

#5 Updated by ipanova@redhat.com 8 months ago

  • Description updated (diff)

#6 Updated by ipanova@redhat.com 8 months ago

  • Description updated (diff)

#7 Updated by ipanova@redhat.com 8 months ago

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

#8 Updated by ipanova@redhat.com 8 months ago

  • Groomed changed from No to Yes

#9 Updated by dalley 8 months ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to dalley

#10 Updated by dalley 8 months ago

  • Status changed from ASSIGNED to POST

#11 Updated by ttereshc 7 months ago

  • Project changed from Pulp to Migration Plugin

#12 Updated by rchan 7 months ago

  • Sprint changed from Sprint 63 to Sprint 64

#13 Updated by dalley 7 months ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100

#14 Updated by ttereshc 5 months ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE
  • Sprint/Milestone set to 0.1.0

#15 Updated by bmbouter 3 months ago

  • Tags deleted (Pulp 2 to 3 Migrate)

We're removing the 'Pulp 2 to 3 Migrate' tag to allow membership of the Migration Plugin project in Redmine to be the controlling area https://pulp.plan.io/projects/migration

Please register to edit this issue

Also available in: Atom PDF