Skip to content

Commit d8cdd35

Browse files
authored
Merge pull request #3639 from codalab/fix-dump
Fix dump issue
1 parent b66732b commit d8cdd35

1 file changed

Lines changed: 27 additions & 21 deletions

File tree

codalab/apps/web/tasks.py

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,28 +1103,34 @@ def represent_odict(dump, tag, mapping, flow_style=None):
11031103
if hasattr(phase, data_type):
11041104
data_field = getattr(phase, data_type)
11051105
if data_field:
1106-
if data_field.file.name not in list(file_cache.keys()):
1107-
if exclude_datasets_flag:
1108-
data_field = getattr(phase, data_type + '_organizer_dataset')
1109-
phase_dict[data_type] = str(data_field.key)
1110-
file_name = "{}_{}.zip".format(data_type, phase.phasenumber)
1111-
file_cache[data_field.name] = {
1112-
'name': file_name
1113-
}
1106+
file_name_on_storage = getattr(data_field, "name", None)
1107+
if file_name_on_storage:
1108+
if file_name_on_storage not in file_cache:
1109+
if exclude_datasets_flag:
1110+
data_field = getattr(phase, data_type + '_organizer_dataset')
1111+
phase_dict[data_type] = str(data_field.key)
1112+
file_name = "{}_{}.zip".format(data_type, phase.phasenumber)
1113+
file_cache[data_field.name] = {
1114+
'name': file_name
1115+
}
1116+
else:
1117+
file_name = "{}_{}.zip".format(data_type, phase.phasenumber)
1118+
phase_dict[data_type] = file_name
1119+
file_cache[data_field.name] = {
1120+
'name': file_name
1121+
}
1122+
try:
1123+
zip_file.writestr(file_name, data_field.read())
1124+
except Exception as e:
1125+
logger.warning("Missing file in storage: %s (%s)", file_name_on_storage, e)
1126+
continue
11141127
else:
1115-
file_name = "{}_{}.zip".format(data_type, phase.phasenumber)
1116-
phase_dict[data_type] = file_name
1117-
file_cache[data_field.file.name] = {
1118-
'name': file_name
1119-
}
1120-
zip_file.writestr(file_name, data_field.read())
1121-
else:
1122-
if exclude_datasets_flag:
1123-
data_field = getattr(phase, data_type + '_organizer_dataset')
1124-
phase_dict[data_type] = str(data_field.key)
1125-
else:
1126-
file_name = file_cache[str(data_field.name)]['name']
1127-
phase_dict[data_type] = file_name
1128+
if exclude_datasets_flag:
1129+
data_field = getattr(phase, data_type + '_organizer_dataset')
1130+
phase_dict[data_type] = str(data_field.key)
1131+
else:
1132+
file_name = file_cache[str(data_field.name)]['name']
1133+
phase_dict[data_type] = file_name
11281134
except ValueError:
11291135
logger.info("Failed to retrieve the file.")
11301136
datasets = phase.datasets.all()

0 commit comments

Comments
 (0)