Skip to content
Snippets Groups Projects
Commit 985d015b authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

SW-772: get task and scratch paths in parallel.

parent 3a165821
No related branches found
No related tags found
1 merge request!8Cobalt2 multithreading fix
......@@ -373,7 +373,7 @@ class CacheManager:
subdir_paths = [sdp for sdp in all_dirs
if sdp.startswith(path) and sdp.count('/') == path_depth+1]
subdir_du_results = [self.getDiskUsageForPath(sd, force_update=force_update) for sd in subdir_paths]
subdir_du_results = self.getDiskUsageForPaths(subdir_paths, force_update=force_update).values()
valid_subdir_du_results = [du for du in subdir_du_results if du.get('disk_usage')]
sum_du = sum([du['disk_usage'] for du in valid_subdir_du_results])
......@@ -500,19 +500,27 @@ class CacheManager:
path_result = self.disk_usage.path_resolver.getPathForTask(radb_id=radb_id, mom_id=mom_id, otdb_id=otdb_id, include_scratch_paths=include_scratch_paths)
if path_result['found']:
path_du_result = self.getDiskUsageForPath(path_result['path'], force_update=force_update)
path_du_result['radb_id'] = path_result.get('radb_id')
path_du_result['mom_id'] = path_result.get('mom_id')
path_du_result['otdb_id'] = path_result.get('otdb_id')
task_path = path_result['path']
scratch_paths = path_result.get('scratch_paths', [])
if 'scratch_paths' in path_result:
path_du_result['scratch_paths'] = {}
# get all du's in parallel over all paths
paths = [task_path] + scratch_paths
paths_du_result = self.getDiskUsageForPaths(paths, force_update=force_update)
# split into project and subdir
path_du_result = paths_du_result.pop(task_path)
scratch_du_result = paths_du_result
task_du_result = dict(path_du_result)
# yield id's for if available, or None
for id in ['radb_id', 'otdb_id', 'mom_id']:
task_du_result[id] = path_result.get(id)
for scratch_path in path_result['scratch_paths']:
scratch_path_du_result = self.getDiskUsageForPath(scratch_path, force_update=force_update)
path_du_result['scratch_paths'][scratch_path] = scratch_path_du_result
if scratch_du_result:
task_du_result['scratch_paths'] = scratch_du_result
return path_du_result
return task_du_result
return {'found': False, 'path': path_result['path']}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment