Merge pull request #4271 from mvdbeek/job_rerun_changed_parameters

Keep tool parameters when rerunning a job
This commit is contained in:
John Chilton
2017-07-03 20:37:00 -04:00
committed by GitHub
9 changed files with 23 additions and 13 deletions
@@ -66,14 +66,23 @@ define( [ 'utils/utils', 'utils/deferred', 'mvc/ui/ui-misc', 'mvc/form/form-view
// build request url
var build_url = '';
var build_data = {};
var job_id = '';
// When re-running a job the job_id is found in the new_options object.
// When re-running a job and requesting a new tool_version,
// the job_id is in the options object.
if ( new_options.job_id ) {
build_url = Galaxy.root + 'api/jobs/' + new_options.job_id + '/build_for_rerun';
job_id = new_options.job_id;
} else if (options.job_id) {
job_id = options.job_id;
}
if ( job_id ) {
build_url = Galaxy.root + 'api/jobs/' + job_id + '/build_for_rerun';
} else {
build_url = Galaxy.root + 'api/tools/' + options.id + '/build';
build_data = $.extend( {}, Galaxy.params );
build_data[ 'tool_id' ] && ( delete build_data[ 'tool_id' ] );
options.version && ( build_data[ 'tool_version' ] = options.version );
}
options.version && ( build_data[ 'tool_version' ] = options.version );
// get initial model
Utils.get({
+1 -1
View File
@@ -1795,7 +1795,7 @@ class Tool( object, Dictifiable ):
if job:
try:
job_params = job.get_param_values( self.app, ignore_errors=True )
tool_warnings = self.check_and_update_param_values( job_params, request_context, update_values=False )
tool_warnings = self.check_and_update_param_values( job_params, request_context, update_values=True )
self._map_source_to_history( request_context, self.inputs, job_params )
tool_message = self._compare_tool_version( job )
params_to_incoming( kwd, self.inputs, job_params, self.app )
+4 -3
View File
@@ -415,10 +415,11 @@ class AbstractToolBox( Dictifiable, ManagesIntegratedToolPanelMixin, object ):
tool_ids = [tool_id]
for tool_id in tool_ids:
if tool_id in self._tools_by_id and not get_all_versions:
if tool_version and tool_version in self._tool_versions_by_id[ tool_id ]:
return self._tool_versions_by_id[ tool_id ][ tool_version ]
# tool_id exactly matches an available tool by id (which is 'old' tool_id or guid)
return self._tools_by_id[ tool_id ]
if not tool_version:
return self._tools_by_id[ tool_id ]
elif tool_version in self._tool_versions_by_id[ tool_id ]:
return self._tool_versions_by_id[ tool_id ][ tool_version ]
elif exact:
# We're looking for an exact match, so we skip lineage and
# versionless mapping, though we may want to check duplicate
+1 -1
View File
@@ -204,7 +204,7 @@ class JobController( BaseAPIController, UsesLibraryMixinItems ):
job = self.__get_job(trans, id)
if not job:
raise exceptions.ObjectNotFound("Could not access job with id '%s'" % id)
tool = self.app.toolbox.get_tool( job.tool_id, job.tool_version )
tool = self.app.toolbox.get_tool( job.tool_id, kwd.get('tool_version') or job.tool_version )
if tool is None:
raise exceptions.ObjectNotFound( "Requested tool not found" )
if not tool.is_workflow_compatible:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long