Skip to content

Commit a2f9717

Browse files
committed
Only mirror files <= 10 MB on lower deployments (#7056)
1 parent 00f45ee commit a2f9717

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

src/azul/azulclient.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -699,18 +699,28 @@ 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 catalog not 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-
log.info('Mirroring file %r in source %r from catalog %r',
712-
file.uuid, str(source.spec), catalog)
713-
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+
log.info('Mirroring file %r in source %r from catalog %r',
722+
file.uuid, str(source.spec), catalog)
723+
self.mirror_service.mirror_file(catalog, file)
714724

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

0 commit comments

Comments
 (0)