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

Commit

Permalink
Add default signing-service to complex plan
Browse files Browse the repository at this point in the history
  • Loading branch information
m-bucher authored and goosemania committed Nov 11, 2021
1 parent 36450ca commit cb1e8d6
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 11 deletions.
1 change: 1 addition & 0 deletions CHANGES/9517.feature
@@ -0,0 +1 @@
Added ``signing_service`` for (apt-)repository in Complex-MigrationPlan. This allows for a signing-service created before the migration to automatically be attached to the migrated repositories.
3 changes: 3 additions & 0 deletions pulp_2to3_migration/app/json_schema.py
Expand Up @@ -39,6 +39,9 @@
"required": ["pulp2_repository_id"],
"additionalProperties": false
}
},
"signing_service": {
"type": "string"
}
},
"required": ["name", "repository_versions"],
Expand Down
23 changes: 20 additions & 3 deletions pulp_2to3_migration/app/migration.py
Expand Up @@ -11,6 +11,7 @@
CreatedResource,
ProgressReport,
Repository,
SigningService,
TaskGroup,
)

Expand Down Expand Up @@ -166,6 +167,20 @@ def complex_repo_migration(plugin_type, pulp3_repo_setup, repo_name):
distributor_types = list(distributor_migrators.keys())
repo_versions_setup = pulp3_repo_setup[repo_name]['repository_versions']

signing_service = None
signing_service_name = pulp3_repo_setup[repo_name].get("signing_service")
if signing_service_name:
_logger.info(
"Signing Service %r requested for %r", signing_service_name, repo_name
)
try:
signing_service = SigningService.objects.get(name=signing_service_name)
except SigningService.DoesNotExist:
_logger.warning(
"Could not find signing-service named %r", signing_service_name
)
raise

# 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].get('pulp2_importer_repository_id')
Expand Down Expand Up @@ -231,7 +246,7 @@ def complex_repo_migration(plugin_type, pulp3_repo_setup, repo_name):
dist_migrator = distributor_migrators.get(dist.pulp2_type_id)
migrate_repo_distributor(
dist_migrator, progress_dist, dist,
migrated_repo.pulp3_repository_version
migrated_repo.pulp3_repository_version, signing_service
)
# add distirbutors specified in the complex plan
# these can be native and not native distributors
Expand Down Expand Up @@ -469,7 +484,9 @@ def resolve_path_overlap(version):
pulp2_repo.save()


def migrate_repo_distributor(dist_migrator, progress_dist, pulp2dist, repo_version=None):
def migrate_repo_distributor(
dist_migrator, progress_dist, pulp2dist, repo_version=None, signing_service=None
):
"""
Migrate repo distributor.
Expand All @@ -481,7 +498,7 @@ def migrate_repo_distributor(dist_migrator, progress_dist, pulp2dist, repo_versi
"""

publication, distribution, created = dist_migrator.migrate_to_pulp3(
pulp2dist, repo_version)
pulp2dist, repo_version, signing_service)
if publication:
pulp2dist.pulp3_publication = publication
pulp2dist.pulp3_distribution = distribution
Expand Down
5 changes: 4 additions & 1 deletion pulp_2to3_migration/app/models/base.py
Expand Up @@ -336,12 +336,15 @@ def _parse_plugin_plan(self, repository_data):
{'repo_id': pulp2_repository_id, 'dist_repo_ids': distributor_repo_ids}
)

signing_service = repository.get("signing_service")

RepoSetup.set_importer(pulp2_repository_id, self.type, importer_repo_id)
RepoSetup.set_distributors(pulp2_repository_id, self.type, distributor_repo_ids)

self.repositories_to_create[name] = {
"pulp2_importer_repository_id": importer_repo_id,
"repository_versions": repository_versions
"repository_versions": repository_versions,
"signing_service": signing_service,
}


Expand Down
12 changes: 9 additions & 3 deletions pulp_2to3_migration/app/plugin/deb/repository.py
Expand Up @@ -52,27 +52,33 @@ class DebDistributor(Pulp2to3Distributor):
pulp3_distribution_models = [AptDistribution]

@classmethod
def migrate_to_pulp3(cls, pulp2distributor, repo_version):
def migrate_to_pulp3(cls, pulp2distributor, repo_version, signing_service):
"""
Migrate distributor to Pulp 3.
Args:
pulp2distributor(Pulp2ditributor): Pre-migrated pulp2 distributor to migrate
pulp2distributor(Pulp2distributor): Pre-migrated pulp2 distributor to migrate
Return:
publication(AptPublication): publication in Pulp3
distribution(AptDistribution): distribution in Pulp3
created(bool): True if Distribution has just been created;
False if Distribution is an existing one;
"""
signing_service_pk = signing_service.pk if signing_service else None
# this will go away with the simple-complex plan conversion work
if not repo_version:
repo = pulp2distributor.pulp2_repos.filter(not_in_plan=False, is_migrated=True)
repo_version = repo[0].pulp3_repository_version
publication = repo_version.publication_set.filter(complete=True).first()
if not publication:
# create publication
publish(repo_version.pk, simple=True, structured=True)
publish(
repo_version.pk,
simple=True,
structured=True,
signing_service_pk=signing_service_pk
)
publication = repo_version.publication_set.filter(complete=True).first()

# create distribution
Expand Down
2 changes: 1 addition & 1 deletion pulp_2to3_migration/app/plugin/docker/repository.py
Expand Up @@ -36,7 +36,7 @@ class DockerDistributor(Pulp2to3Distributor):
pulp3_distribution_models = [ContainerDistribution]

@classmethod
def migrate_to_pulp3(cls, pulp2distributor, repo_version):
def migrate_to_pulp3(cls, pulp2distributor, repo_version, signing_service):
"""
Migrate distributor to Pulp 3.
Expand Down
2 changes: 1 addition & 1 deletion pulp_2to3_migration/app/plugin/iso/repository.py
Expand Up @@ -46,7 +46,7 @@ class IsoDistributor(Pulp2to3Distributor):
pulp3_distribution_models = [FileDistribution]

@classmethod
def migrate_to_pulp3(cls, pulp2distributor, repo_version):
def migrate_to_pulp3(cls, pulp2distributor, repo_version, signing_service):
"""
Migrate distributor to Pulp 3.
Expand Down
3 changes: 2 additions & 1 deletion pulp_2to3_migration/app/plugin/repository.py
Expand Up @@ -115,12 +115,13 @@ def parse_base_config(pulp2distributor, pulp2_config):
return base_config

@classmethod
def migrate_to_pulp3(cls, pulp2distributor, repo_version):
def migrate_to_pulp3(cls, pulp2distributor, repo_version, signing_service):
"""
Migrate pre-migrated Pulp 2 distributor.
Args:
pulp2distributor(Pulp2Distributor): Pre-migrated pulp2 distributor to migrate
signing_service(SigningService): as specified in plan's repository-section
Return:
publication/distribution: Corresponding plugin's object in Pulp3
Expand Down
2 changes: 1 addition & 1 deletion pulp_2to3_migration/app/plugin/rpm/repository.py
Expand Up @@ -53,7 +53,7 @@ class RpmDistributor(Pulp2to3Distributor):
pulp3_distribution_models = [RpmDistribution]

@classmethod
def migrate_to_pulp3(cls, pulp2distributor, repo_version):
def migrate_to_pulp3(cls, pulp2distributor, repo_version, signing_service):
"""
Migrate distributor to Pulp 3.
Expand Down

0 comments on commit cb1e8d6

Please sign in to comment.