3 new commits in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/2248c4d82151/ Changeset: 2248c4d82151 Branch: stable User: jmchilton Date: 2015-02-05 17:14:01+00:00 Summary: Workflow scheduling delay fix. There were problems if all three of these conditions were met - 1) workflow from GUI, 2) workflow evaluation delayed, and 3) a delayed step was connected to a input dataset. This fixes these workflows. Affected #: 3 files diff -r 097bbb3b7d3246faaa5188a1fc2a79b01630025c -r 2248c4d82151c928a7615f9335b55aa0c55c9446 lib/galaxy/model/__init__.py --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3202,6 +3202,27 @@ def update( self ): self.update_time = galaxy.model.orm.now.now() + def add_input( self, content, step_id ): + if content.history_content_type == "dataset": + request_to_content = WorkflowRequestToInputDatasetAssociation() + request_to_content.dataset = content + request_to_content.workflow_step_id = step_id + self.input_datasets.append( request_to_content ) + else: + request_to_content = WorkflowRequestToInputDatasetCollectionAssociation() + request_to_content.dataset_collection = content + request_to_content.workflow_step_id = step_id + self.input_dataset_collections.append( request_to_content ) + + def has_input_for_step( self, step_id ): + for content in self.input_datasets: + if content.workflow_step_id == step_id: + return True + for content in self.input_dataset_collections: + if content.workflow_step_id == step_id: + return True + return False + class WorkflowInvocationStep( object, Dictifiable ): dict_collection_visible_keys = ( 'id', 'update_time', 'job_id', 'workflow_step_id', 'action' ) diff -r 097bbb3b7d3246faaa5188a1fc2a79b01630025c -r 2248c4d82151c928a7615f9335b55aa0c55c9446 lib/galaxy/workflow/modules.py --- a/lib/galaxy/workflow/modules.py +++ b/lib/galaxy/workflow/modules.py @@ -320,6 +320,11 @@ step_outputs[ 'input_ds_copy' ] = new_hdca else: raise Exception("Unknown history content encountered") + # If coming from UI - we haven't registered invocation inputs yet, + # so do that now so dependent steps can be recalculated. In the future + # everything should come in from the API and this can be eliminated. + if not invocation.has_input_for_step( step.id ): + invocation.add_input( step_outputs.values()[ 0 ], step.id ) progress.set_outputs_for_input( step, step_outputs ) return job diff -r 097bbb3b7d3246faaa5188a1fc2a79b01630025c -r 2248c4d82151c928a7615f9335b55aa0c55c9446 lib/galaxy/workflow/run_request.py --- a/lib/galaxy/workflow/run_request.py +++ b/lib/galaxy/workflow/run_request.py @@ -284,18 +284,8 @@ value=value, type=param_types.REPLACEMENT_PARAMETERS, ) - for step_id, content in run_config.inputs.iteritems(): - if content.history_content_type == "dataset": - request_to_content = model.WorkflowRequestToInputDatasetAssociation() - request_to_content.dataset = content - request_to_content.workflow_step_id = step_id - workflow_invocation.input_datasets.append( request_to_content ) - else: - request_to_content = model.WorkflowRequestToInputDatasetCollectionAssociation() - request_to_content.dataset_collection = content - request_to_content.workflow_step_id = step_id - workflow_invocation.input_dataset_collections.append( request_to_content ) + workflow_invocation.add_input( content, step_id ) for step in workflow.steps: state = step.state https://bitbucket.org/galaxy/galaxy-central/commits/e07163fe8bdb/ Changeset: e07163fe8bdb Branch: stable User: jmchilton Date: 2015-02-05 17:14:01+00:00 Summary: Fix scheduling_manager.py for unknown attribute reference. Not sure if this was a poor rebasing or a copy and paste error. Affected #: 1 file diff -r 2248c4d82151c928a7615f9335b55aa0c55c9446 -r e07163fe8bdbc3e85f48b308ed293c46578b3294 lib/galaxy/workflow/scheduling_manager.py --- a/lib/galaxy/workflow/scheduling_manager.py +++ b/lib/galaxy/workflow/scheduling_manager.py @@ -116,7 +116,6 @@ for plugin_element in plugins_element.getchildren(): plugin_type = plugin_element.tag plugin_kwds = dict( plugin_element.items() ) - plugin_kwds.update( self.extra_kwargs ) workflow_scheduler_id = plugin_kwds.get( 'id', None ) self.__init_plugin( plugin_type, workflow_scheduler_id, **plugin_kwds ) https://bitbucket.org/galaxy/galaxy-central/commits/644deef1a578/ Changeset: 644deef1a578 Branch: stable User: jmchilton Date: 2015-02-05 18:33:59+00:00 Summary: Bugfix for bugfix d3b1f6b. d3b1f6b fix the GUI (in an obsecure use) but broke fairly typical uses of the API. Affected #: 1 file diff -r e07163fe8bdbc3e85f48b308ed293c46578b3294 -r 644deef1a5789b788552a6db7f3d6fe07d81c79d lib/galaxy/workflow/modules.py --- a/lib/galaxy/workflow/modules.py +++ b/lib/galaxy/workflow/modules.py @@ -324,7 +324,9 @@ # so do that now so dependent steps can be recalculated. In the future # everything should come in from the API and this can be eliminated. if not invocation.has_input_for_step( step.id ): - invocation.add_input( step_outputs.values()[ 0 ], step.id ) + content = step_outputs.values()[ 0 ] + if content: + invocation.add_input( content, step.id ) progress.set_outputs_for_input( step, step_outputs ) return job Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.