Skip to content

Commit

Permalink
Improve progress reporting during sync and publish
Browse files Browse the repository at this point in the history
  • Loading branch information
dralley committed Jun 2, 2021
1 parent 2dc56f1 commit d23e42a
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 26 deletions.
1 change: 1 addition & 0 deletions CHANGES/8681.misc
@@ -0,0 +1 @@
Improved progress reporting during sync and publish.
51 changes: 31 additions & 20 deletions pulp_rpm/app/tasks/publishing.py
Expand Up @@ -16,6 +16,7 @@
AsciiArmoredDetachedSigningService,
ContentArtifact,
RepositoryVersion,
ProgressReport,
PublishedArtifact,
PublishedMetadata,
)
Expand Down Expand Up @@ -306,37 +307,47 @@ def publish(
publication_data = PublicationData(publication)
publication_data.populate()

content = publication.repository_version.content

# Main repo
create_repomd_xml(
content,
publication,
checksum_types,
publication_data.repomdrecords,
metadata_signing_service=metadata_signing_service,
total_repos = 1 + len(publication_data.sub_repos)
pb_data = dict(
message="Generating repository metadata",
code="publish.generating_metadata",
total=total_repos,
)
with ProgressReport(**pb_data) as publish_pb:

content = publication.repository_version.content

for sub_repo in publication_data.sub_repos:
name = sub_repo[0]
checksum_types["original"] = getattr(publication_data, f"{name}_checksums")
content = getattr(publication_data, f"{name}_content")
extra_repomdrecords = getattr(publication_data, f"{name}_repomdrecords")
create_repomd_xml(
# Main repo
generate_repo_metadata(
content,
publication,
checksum_types,
extra_repomdrecords,
name,
publication_data.repomdrecords,
metadata_signing_service=metadata_signing_service,
)
publish_pb.increment()

for sub_repo in publication_data.sub_repos:
name = sub_repo[0]
checksum_types["original"] = getattr(publication_data, f"{name}_checksums")
content = getattr(publication_data, f"{name}_content")
extra_repomdrecords = getattr(publication_data, f"{name}_repomdrecords")
generate_repo_metadata(
content,
publication,
checksum_types,
extra_repomdrecords,
name,
metadata_signing_service=metadata_signing_service,
)
publish_pb.increment()

log.info(_("Publication: {publication} created").format(publication=publication.pk))
log.info(_("Publication: {publication} created").format(publication=publication.pk))

return publication
return publication


def create_repomd_xml(
def generate_repo_metadata(
content,
publication,
checksum_types,
Expand Down
9 changes: 4 additions & 5 deletions pulp_rpm/app/tasks/synchronizing.py
Expand Up @@ -261,11 +261,6 @@ def is_optimized_sync(repository, remote, url):
and is_previous_version(repomd.revision, repository.last_sync_revision_number)
and repository.last_sync_repomd_checksum == repomd_checksum
)
if is_optimized:
optimize_data = dict(message="Optimizing Sync", code="sync.optimizing")
with ProgressReport(**optimize_data) as optimize_pb:
optimize_pb.done = 1
optimize_pb.save()

return is_optimized

Expand Down Expand Up @@ -331,6 +326,10 @@ def get_treeinfo_data(remote, remote_url):
remote_url = fetch_remote_url(remote)

if optimize and is_optimized_sync(repository, remote, remote_url):
with ProgressReport(
message="Skipping Sync (no change from previous sync)", code="sync.was_skipped"
) as pb:
pb.done = 1
return

treeinfo = get_treeinfo_data(remote, remote_url)
Expand Down
2 changes: 1 addition & 1 deletion pulp_rpm/tests/functional/api/test_sync.py
Expand Up @@ -1137,7 +1137,7 @@ def sync(self, repository=None, remote=None, optimize=True, mirror=False, skip_t
def optimize_report(self, progress_reports=[]):
"""Return whether an optimize progress report exists."""
for report in progress_reports:
if report.message == "Optimizing Sync":
if report.code == "sync.was_skipped":
return True
return False

Expand Down

0 comments on commit d23e42a

Please sign in to comment.