Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

Commit

Permalink
Make pulp2 importer optional
Browse files Browse the repository at this point in the history
closes #6056
closes #5984
  • Loading branch information
goosemania authored and ipanova committed Jan 30, 2020
1 parent e429fde commit 3405720
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 11 deletions.
1 change: 1 addition & 0 deletions CHANGES/5984.bugfix
@@ -0,0 +1 @@
Add error message for the importers that cannot be migrated.
1 change: 1 addition & 0 deletions CHANGES/6056.bugfix
@@ -0,0 +1 @@
Make pulp2 importer optional.
2 changes: 1 addition & 1 deletion pulp_2to3_migration/app/json_schema.py
Expand Up @@ -41,7 +41,7 @@
}
}
},
"required": ["name", "pulp2_importer_repository_id", "repository_versions"],
"required": ["name", "repository_versions"],
"additionalProperties": false,
"$comment": "pulp2_importer_repository_id field should be specified so we know which importer to use when migrating multiple pulp2 repos into repo versions"
}
Expand Down
19 changes: 13 additions & 6 deletions pulp_2to3_migration/app/migration.py
Expand Up @@ -282,11 +282,19 @@ def create_repo_version(migrator, pulp3_repo_name, pulp2_repo, pulp3_remote=None
else:
for repo_name in pulp3_repo_setup:
repo_versions_setup = pulp3_repo_setup[repo_name]['repository_versions']

# importer might not be migrated, e.g. config is empty or it's not specified in a MP
pulp3_remote = None
pulp2_importer_repo_id = \
pulp3_repo_setup[repo_name]['pulp2_importer_repository_id']
pulp2_importer = Pulp2Importer.objects.get(
pulp2_repo_id=pulp2_importer_repo_id
)
pulp3_repo_setup[repo_name].get('pulp2_importer_repository_id')
if pulp2_importer_repo_id:
try:
pulp2_importer = Pulp2Importer.objects.get(
pulp2_repo_id=pulp2_importer_repo_id
)
pulp3_remote = pulp2_importer.pulp3_remote
except Pulp2Importer.DoesNotExist:
pass
for pulp2_repo_info in repo_versions_setup:
try:
pulp2_repo = Pulp2Repository.objects.get(
Expand All @@ -300,5 +308,4 @@ def create_repo_version(migrator, pulp3_repo_name, pulp2_repo, pulp3_remote=None
# it's possible to have a random order of the repo versions (after migration
# re-run, a repo can be changed in pulp 2 and it might not be for the last
# repo version)
create_repo_version(plugin.migrator, repo_name, pulp2_repo,
pulp2_importer.pulp3_remote)
create_repo_version(plugin.migrator, repo_name, pulp2_repo, pulp3_remote)
5 changes: 3 additions & 2 deletions pulp_2to3_migration/app/models/base.py
Expand Up @@ -211,8 +211,9 @@ def _parse_plugin_plan(self, repository_data):
for repository in repositories:
name = repository['name']

_find_importer_repo = repository['pulp2_importer_repository_id']
self.repositories_importers_to_migrate.append(_find_importer_repo)
_find_importer_repo = repository.get('pulp2_importer_repository_id')
if _find_importer_repo:
self.repositories_importers_to_migrate.append(_find_importer_repo)

repository_versions = []
for repository_version in repository.get('repository_versions', []):
Expand Down
12 changes: 10 additions & 2 deletions pulp_2to3_migration/app/pre_migration.py
Expand Up @@ -238,8 +238,13 @@ async def pre_migrate_all_without_content(plan, type_to_repo_ids, repo_id_to_typ
with transaction.atomic():
if not repos or repos and repo_id in repos:
repo = await pre_migrate_repo(repo_data, repo_id_to_type)
await pre_migrate_importer(repo_id, importers_repos, importer_types, repo)
await pre_migrate_distributor(repo_id, distributors_repos, distributor_types, repo)
# do not pre-migrate importers/distributors in case of special repo setup
# and no importers/distributors were specified in the MP
if not repos or repos and importers_repos:
await pre_migrate_importer(repo_id, importers_repos, importer_types, repo)
if not repos or repos and distributors_repos:
await pre_migrate_distributor(repo_id, distributors_repos, distributor_types,
repo)
if repo:
await pre_migrate_repocontent(repo)
pb.increment()
Expand Down Expand Up @@ -321,6 +326,9 @@ async def pre_migrate_importer(repo_id, importers, importer_types, repo=None):

if not importer_data.config.get('feed'):
# Pulp 3 remotes require URL
msg = 'Importer from {repo} cannot be migrated because it does not have a feed'.format(
repo=repo_id)
_logger.warn(msg)
return

last_updated = (importer_data.last_updated
Expand Down

0 comments on commit 3405720

Please sign in to comment.