Skip to content

Commit 33d63d0

Browse files
committed
Only mirror files <= 10 MB on lower deployments (#7056)
1 parent 84e9e4a commit 33d63d0

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

src/azul/azulclient.py

+18-9
Original file line numberDiff line numberDiff line change
@@ -701,16 +701,25 @@ 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 single-part upload', file.uuid)
707-
self.mirror_service.mirror_file(catalog, file)
704+
file_is_large = file.size > 10 * 1024 ** 2
705+
deployment_is_stable = (config.deployment.is_stable
706+
and not config.deployment.is_unit_test
707+
and catalog not in config.integration_test_catalogs)
708+
if file_is_large and not deployment_is_stable:
709+
log.info('Not mirroring file %r (%d bytes) to save cost',
710+
file.uuid, file.size)
708711
else:
709-
log.info('Mirroring file %r via multi-part upload', file.uuid)
710-
upload_id = self.mirror_service.begin_mirroring_file(file)
711-
part = FilePart.head(file, part_size)
712-
messages = [self.mirror_part_message(catalog, file, part, upload_id)]
713-
self.queue_mirror_messages(messages)
712+
# Ensure we test with multiple parts on lower deployments
713+
part_size = FilePart.default_size if deployment_is_stable else FilePart.min_size
714+
if file.size <= part_size:
715+
log.info('Mirroring file %r via single-part upload', file.uuid)
716+
self.mirror_service.mirror_file(catalog, file)
717+
else:
718+
log.info('Mirroring file %r via multi-part upload', file.uuid)
719+
upload_id = self.mirror_service.begin_mirroring_file(file)
720+
part = FilePart.head(file, part_size)
721+
messages = [self.mirror_part_message(catalog, file, part, upload_id)]
722+
self.queue_mirror_messages(messages)
714723

715724
def mirror_file_part(self,
716725
catalog: CatalogName,

0 commit comments

Comments
 (0)