Skip to content

Commit 9dc1566

Browse files
committed
Only mirror files <= 10 MB on lower deployments (#7056)
1 parent 42eaf4b commit 9dc1566

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

src/azul/azulclient.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -699,16 +699,26 @@ def mirror_file(self,
699699
source = self.repository_plugin(catalog).source_ref_cls.from_json(source_json)
700700
file = self.load_file(catalog, file_json)
701701
assert file.size is not None, R('File size unknown', file)
702-
part_size = FilePart.default_size
703-
if file.size > part_size:
704-
upload_id = self.mirror_service.begin_mirroring_file(file)
705-
parts = list(FilePart.partition(file, part_size))
706-
log.info('Mirroring %d parts for file %r in source %r from catalog %r',
707-
len(parts), file.uuid, str(source.spec), catalog)
708-
messages = self.mirror_parts_messages(catalog, source, file, parts, upload_id)
709-
self.queue_mirror_messages(messages)
702+
703+
file_is_large = file.size > 10 * 1024 ** 2
704+
deployment_is_stable = (config.deployment.is_stable
705+
and not config.deployment.is_unit_test
706+
and not catalog in config.integration_test_catalogs)
707+
if file_is_large and not deployment_is_stable:
708+
log.info('Not mirroring file %r (%d bytes) to save cost',
709+
file.uuid, file.size)
710710
else:
711-
self.mirror_service.mirror_file(catalog, file)
711+
# Ensure we test with multiple parts on lower deployments
712+
part_size = FilePart.default_size if deployment_is_stable else FilePart.min_size
713+
if file.size > part_size:
714+
upload_id = self.mirror_service.begin_mirroring_file(file)
715+
parts = list(FilePart.partition(file, part_size))
716+
log.info('Mirroring %d parts for file %r in source %r from catalog %r',
717+
len(parts), file.uuid, str(source.spec), catalog)
718+
messages = self.mirror_parts_messages(catalog, source, file, parts, upload_id)
719+
self.queue_mirror_messages(messages)
720+
else:
721+
self.mirror_service.mirror_file(catalog, file)
712722

713723
def load_file(self, catalog: CatalogName, file: JSON) -> File:
714724
return self.metadata_plugin(catalog).file_class.from_json(file)

0 commit comments

Comments
 (0)