From fbe9df2236475ff47b260f5fdba900d05eddb1ca Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 21 Apr 2015 09:29:50 -0400 Subject: [PATCH 1/5] Bugfix: Resolve metadata dependencies for task runner. Also deduplicates code for next fix. --- lib/galaxy/jobs/runners/tasks.py | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/lib/galaxy/jobs/runners/tasks.py b/lib/galaxy/jobs/runners/tasks.py index 3d000dc8d36..cab93909483 100644 --- a/lib/galaxy/jobs/runners/tasks.py +++ b/lib/galaxy/jobs/runners/tasks.py @@ -124,19 +124,7 @@ class TaskedJobRunner( BaseJobRunner ): #run the metadata setting script here #this is terminate-able when output dataset/job is deleted #so that long running set_meta()s can be canceled without having to reboot the server - if job_wrapper.get_state() not in [ model.Job.states.ERROR, model.Job.states.DELETED ] and job_wrapper.output_paths: - external_metadata_script = job_wrapper.setup_external_metadata( output_fnames=job_wrapper.get_output_fnames(), - set_extension=True, - kwds={ 'overwrite' : False } ) # we don't want to overwrite metadata that was copied over in init_meta(), as per established behavior - log.debug( 'executing external set_meta script for job %d: %s' % ( job_wrapper.job_id, external_metadata_script ) ) - external_metadata_proc = subprocess.Popen( args=external_metadata_script, - shell=True, - env=os.environ, - preexec_fn=os.setpgrp ) - job_wrapper.external_output_metadata.set_job_runner_external_pid( external_metadata_proc.pid, self.sa_session ) - external_metadata_proc.wait() - log.debug( 'execution of external set_meta finished for job %d' % job_wrapper.job_id ) - + self._handle_metadata_externally(job_wrapper, resolve_requirements=True ) # Finish the job try: job_wrapper.finish( stdout, stderr, job_exit_code ) From 66765352ef1e9bd7b8c36f718dd22f6b99f0d204 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 21 Apr 2015 09:36:44 -0400 Subject: [PATCH 2/5] Bugfix: Fix metadata python path when using _handle_metadata_externally. This is used by lwr, pulsar, and task runners and possibly by the local job runner in some configurations. Broken with PR #22 which was merged into 15.03. --- lib/galaxy/jobs/runners/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/galaxy/jobs/runners/__init__.py b/lib/galaxy/jobs/runners/__init__.py index 761d676d7f8..6fe70dd20bd 100644 --- a/lib/galaxy/jobs/runners/__init__.py +++ b/lib/galaxy/jobs/runners/__init__.py @@ -34,6 +34,8 @@ JOB_RUNNER_PARAMETER_UNKNOWN_MESSAGE = "Invalid job runner parameter for this pl JOB_RUNNER_PARAMETER_MAP_PROBLEM_MESSAGE = "Job runner parameter '%s' value '%s' could not be converted to the correct type" JOB_RUNNER_PARAMETER_VALIDATION_FAILED_MESSAGE = "Job runner parameter %s failed validation" +GALAXY_LIB_ADJUST_TEMPLATE = """GALAXY_LIB="%s"; if [ "$GALAXY_LIB" != "None" ]; then if [ -n "$PYTHONPATH" ]; then PYTHONPATH="$GALAXY_LIB:$PYTHONPATH"; else PYTHONPATH="$GALAXY_LIB"; fi; export PYTHONPATH; fi;""" + class RunnerParams( ParamsWithSpecs ): @@ -250,11 +252,13 @@ class BaseJobRunner( object ): #this is terminate-able when output dataset/job is deleted #so that long running set_meta()s can be canceled without having to reboot the server if job_wrapper.get_state() not in [ model.Job.states.ERROR, model.Job.states.DELETED ] and job_wrapper.output_paths: + lib_adjust = GALAXY_LIB_ADJUST_TEMPLATE % job_wrapper.galaxy_lib_dir external_metadata_script = job_wrapper.setup_external_metadata( output_fnames=job_wrapper.get_output_fnames(), set_extension=True, tmp_dir=job_wrapper.working_directory, #we don't want to overwrite metadata that was copied over in init_meta(), as per established behavior kwds={ 'overwrite' : False } ) + external_metadata_script = "%s %s" % (lib_adjust, external_metadata_script) if resolve_requirements: dependency_shell_commands = self.app.datatypes_registry.set_external_metadata_tool.build_dependency_shell_commands() if dependency_shell_commands: From 3f1cec451f6dadee52a70a14fc6f6899f7aacdae Mon Sep 17 00:00:00 2001 From: guerler Date: Wed, 22 Apr 2015 12:21:24 -0400 Subject: [PATCH 3/5] Fix default values for nested conditional test parameters --- lib/galaxy/tools/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index d0dc1c0caed..3b0771334e6 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -2444,7 +2444,8 @@ class Tool( object, Dictifiable ): elif input.type == 'conditional': if 'test_param' in tool_dict: test_param = tool_dict['test_param'] - test_param['value'] = jsonify(group_state.get(test_param['name'], None)) + test_param['default_value'] = jsonify(input.test_param.get_initial_value(trans, other_values)) + test_param['value'] = jsonify(group_state.get(test_param['name'], test_param['default_value'])) for i in range (len ( tool_dict['cases'] ) ): current_state = {} if i == group_state.get('__current_case__', None): From 86880990a8fba725dd6354f05be7ba46cd337886 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 22 Apr 2015 15:05:21 -0400 Subject: [PATCH 4/5] Bump version to 15.03.2 --- lib/galaxy/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/version.py b/lib/galaxy/version.py index 4a3e064aa3a..efd891e7927 100644 --- a/lib/galaxy/version.py +++ b/lib/galaxy/version.py @@ -1,3 +1,3 @@ VERSION_MAJOR = "15.03" -VERSION_MINOR = "1" +VERSION_MINOR = "2" VERSION = VERSION_MAJOR + ('.' + VERSION_MINOR if VERSION_MINOR else '') From d3ba1a748a77c3b6ad8b95dd7a3d6edd22de7857 Mon Sep 17 00:00:00 2001 From: guerler Date: Thu, 23 Apr 2015 15:05:00 -0400 Subject: [PATCH 5/5] Fix base url tool parameter --- lib/galaxy/tools/parameters/basic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 744bff0932b..bd95c98416a 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -689,7 +689,7 @@ class BaseURLToolParameter( ToolParameter ): return form_builder.HiddenField( self.name, self.get_value( trans ) ) def get_initial_value( self, trans, context, history=None ): - return self.value + return self.get_value( trans ) def get_label( self ): # BaseURLToolParameters are ultimately "hidden" parameters