4 new commits in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/73e9ca698df3/ Changeset: 73e9ca698df3 User: jmchilton Date: 2015-02-05 17:27:46+00:00 Summary: Fix workflow schedulers to fallback onto sample like other config files. Affected #: 1 file diff -r 2f436edb5288bf750382ae1ccddd95ed611db6a1 -r 73e9ca698df3f0da3fe145878938cdf60978d17c lib/galaxy/config.py --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -143,7 +143,6 @@ self.collect_outputs_from = [ x.strip() for x in kwargs.get( 'collect_outputs_from', 'new_file_path,job_working_directory' ).lower().split(',') ] self.template_path = resolve_path( kwargs.get( "template_path", "templates" ), self.root ) self.template_cache = resolve_path( kwargs.get( "template_cache_path", "database/compiled_templates" ), self.root ) - self.workflow_schedulers_config_file = resolve_path( kwargs.get( 'workflow_schedulers_config_file', 'config/workflow_schedulers_conf.xml' ), self.root ) self.local_job_queue_workers = int( kwargs.get( "local_job_queue_workers", "5" ) ) self.cluster_job_queue_workers = int( kwargs.get( "cluster_job_queue_workers", "3" ) ) self.job_queue_cleanup_interval = int( kwargs.get("job_queue_cleanup_interval", "5") ) @@ -459,6 +458,7 @@ shed_data_manager_config_file=[ 'shed_data_manager_conf.xml', 'config/shed_data_manager_conf.xml' ], shed_tool_data_table_config=[ 'shed_tool_data_table_conf.xml', 'config/shed_tool_data_table_conf.xml' ], tool_sheds_config_file=[ 'config/tool_sheds_conf.xml', 'tool_sheds_conf.xml', 'config/tool_sheds_conf.xml.sample' ], + workflow_schedulers_config_file=['config/workflow_schedulers_conf.xml', 'config/workflow_schedulers_conf.xml.sample'], ) listify_defaults = dict( https://bitbucket.org/galaxy/galaxy-central/commits/d3b1f6b04d4b/ Changeset: d3b1f6b04d4b User: jmchilton Date: 2015-02-05 17:27:46+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 73e9ca698df3f0da3fe145878938cdf60978d17c -r d3b1f6b04d4b4fb9db667afdfb2beb78db5226a0 lib/galaxy/model/__init__.py --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3253,6 +3253,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 73e9ca698df3f0da3fe145878938cdf60978d17c -r d3b1f6b04d4b4fb9db667afdfb2beb78db5226a0 lib/galaxy/workflow/modules.py --- a/lib/galaxy/workflow/modules.py +++ b/lib/galaxy/workflow/modules.py @@ -326,6 +326,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 73e9ca698df3f0da3fe145878938cdf60978d17c -r d3b1f6b04d4b4fb9db667afdfb2beb78db5226a0 lib/galaxy/workflow/run_request.py --- a/lib/galaxy/workflow/run_request.py +++ b/lib/galaxy/workflow/run_request.py @@ -297,18 +297,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/ff56bdbf7b3e/ Changeset: ff56bdbf7b3e User: jmchilton Date: 2015-02-05 17:27:46+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 d3b1f6b04d4b4fb9db667afdfb2beb78db5226a0 -r ff56bdbf7b3e1a7a19eaab24be8d2ac6b8aa970c 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/b6349ba5cda2/ Changeset: b6349ba5cda2 User: jmchilton Date: 2015-02-05 17:27:46+00:00 Summary: Improved error message if things don't match up when recovering workflows. Ideally this shouldn't really happen - but this should help if it does. Affected #: 1 file diff -r ff56bdbf7b3e1a7a19eaab24be8d2ac6b8aa970c -r b6349ba5cda26cdea678c4842136e50363c0629f lib/galaxy/workflow/run.py --- a/lib/galaxy/workflow/run.py +++ b/lib/galaxy/workflow/run.py @@ -251,7 +251,13 @@ step_outputs = self.outputs[ connection.output_step.id ] if step_outputs is STEP_OUTPUT_DELAYED: raise modules.DelayedWorkflowEvaluation() - replacement = step_outputs[ connection.output_name ] + output_name = connection.output_name + try: + replacement = step_outputs[ output_name ] + except KeyError: + template = "Workflow evaluation problem - failed to find output_name %s in step_outputs %s" + message = template % ( output_name, step_outputs ) + raise Exception( message ) if isinstance( replacement, model.HistoryDatasetCollectionAssociation ): if not replacement.collection.populated: if not replacement.collection.waiting_for_elements: 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.