Skip to content

Commit e4b935c

Browse files
committed
Only mirror files <= 10 MB on lower deployments (#7056)
1 parent 144ffa8 commit e4b935c

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

src/azul/azulclient.py

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -701,20 +701,30 @@ def mirror_file(self,
701701
):
702702
file = self.load_file(catalog, file_json)
703703
assert file.size is not None, R('File size unknown', file)
704-
part_size = FilePart.default_size
705-
if file.size <= part_size:
706-
log.info('Mirroring file %r via standard upload', file.uuid)
707-
self.mirror_service.mirror_file(catalog, file)
708-
log.info('Successfully mirrored file %r via standard upload', file.uuid)
704+
705+
file_is_large = file.size > 10 * 1024 ** 2
706+
deployment_is_stable = (config.deployment.is_stable
707+
and not config.deployment.is_unit_test
708+
and catalog not in config.integration_test_catalogs)
709+
if file_is_large and not deployment_is_stable:
710+
log.info('Not mirroring file %r (%d bytes) to save cost',
711+
file.uuid, file.size)
709712
else:
710-
log.info('Mirroring file %r via multi-part upload', file.uuid)
711-
upload_id = self.mirror_service.begin_mirroring_file(file)
712-
first_part = FilePart.first(file, part_size)
713-
etag = self.mirror_service.mirror_file_part(catalog, file, upload_id, first_part)
714-
next_part = first_part.next(file)
715-
assert next_part is not None
716-
messages = [self.mirror_part_message(catalog, file, next_part, upload_id, [etag])]
717-
self.queue_mirror_messages(messages)
713+
# Ensure we test with multiple parts on lower deployments
714+
part_size = FilePart.default_size if deployment_is_stable else FilePart.min_size
715+
if file.size <= part_size:
716+
log.info('Mirroring file %r via standard upload', file.uuid)
717+
self.mirror_service.mirror_file(catalog, file)
718+
log.info('Successfully mirrored file %r via standard upload', file.uuid)
719+
else:
720+
log.info('Mirroring file %r via multi-part upload', file.uuid)
721+
upload_id = self.mirror_service.begin_mirroring_file(file)
722+
first_part = FilePart.first(file, part_size)
723+
etag = self.mirror_service.mirror_file_part(catalog, file, upload_id, first_part)
724+
next_part = first_part.next(file)
725+
assert next_part is not None
726+
messages = [self.mirror_part_message(catalog, file, next_part, upload_id, [etag])]
727+
self.queue_mirror_messages(messages)
718728

719729
def mirror_file_part(self,
720730
catalog: CatalogName,

0 commit comments

Comments
 (0)