Merge pull request #11170 from mvdbeek/fix_history_import_job_finish

[21.01] Fix history import job done before import complete
This commit is contained in:
John Chilton
2021-01-18 17:26:53 -05:00
committed by GitHub
3 changed files with 13 additions and 6 deletions
@@ -153,10 +153,7 @@ export default {
waitOnJob(jobId)
.then((jobResponse) => {
this.waitingOnJob = false;
this.loadingExports = true;
// Race condition, for some reasons the job API returns
// ok before the JEHA...
setTimeout(this.loadExports, 2000);
this.loadExports();
})
.catch(this.handleError);
},
+5 -2
View File
@@ -1731,7 +1731,11 @@ class JobWrapper(HasResourceParameters):
# Certain tools require tasks to be completed after job execution
# ( this used to be performed in the "exec_after_process" hook, but hooks are deprecated ).
param_dict = self.get_param_dict(job)
self.tool.exec_after_process(self.app, inp_data, out_data, param_dict, job=job, final_job_state=final_job_state)
try:
self.tool.exec_after_process(self.app, inp_data, out_data, param_dict, job=job, final_job_state=final_job_state)
except Exception:
log.exception(f"exec_after_process hook failed for job {self.job_id}")
final_job_state = job.states.ERROR
# Call 'exec_after_process' hook
self.tool.call_hook('exec_after_process', self.app, inp_data=inp_data,
out_data=out_data, param_dict=param_dict,
@@ -1834,7 +1838,6 @@ class JobWrapper(HasResourceParameters):
if e.errno != errno.ENOENT:
raise
self.external_output_metadata.cleanup_external_metadata(self.sa_session)
galaxy.tools.imp_exp.JobImportHistoryArchiveWrapper(self.app, self.job_id).cleanup_after_job()
if delete_files:
self.object_store.delete(self.get_job(), base_dir='job_work', entire_dir=True, dir_only=True, obj_dir=True)
except Exception:
+7
View File
@@ -55,6 +55,7 @@ from galaxy.tools.actions.data_manager import DataManagerToolAction
from galaxy.tools.actions.data_source import DataSourceToolAction
from galaxy.tools.actions.model_operations import ModelOperationToolAction
from galaxy.tools.cache import ToolDocumentCache
from galaxy.tools.imp_exp import JobImportHistoryArchiveWrapper
from galaxy.tools.parameters import (
check_param,
params_from_strings,
@@ -2649,6 +2650,12 @@ class ExportHistoryTool(Tool):
class ImportHistoryTool(Tool):
tool_type = 'import_history'
def exec_after_process(self, app, inp_data, out_data, param_dict, job, final_job_state=None, **kwds):
super().exec_after_process(app, inp_data, out_data, param_dict, job=job, **kwds)
if final_job_state != DETECTED_JOB_STATE.OK:
return
JobImportHistoryArchiveWrapper(self.app, job.id).cleanup_after_job()
class InteractiveTool(Tool):
tool_type = 'interactive'