From 0357a43f55d6f5cb66baa27e6c72456fd6b8cbad Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 30 Jun 2015 11:29:44 -0400 Subject: [PATCH 1/7] Fix workflow run for certain kinds of explicit output collections. Workflows with steps that produce an unknown number of datasets must explicitly be sent to the new workflow engine - since the workflow needs be re-evaluated after such steps have completed. This change updates the force_queue to check workflow steps for such collections and return True if any are found - this is what causes certain GUI driven workflows to use the new workflow engine. --- lib/galaxy/tools/__init__.py | 10 ++++++++++ lib/galaxy/workflow/run.py | 2 ++ 2 files changed, 12 insertions(+) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index 88af8170c98..1f2d5dd3ba3 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -500,6 +500,16 @@ class Tool( object, Dictifiable ): def produces_collections( self ): return any( o.collection for o in self.outputs.values() ) + @property + def produces_collections_with_unknown_structure( self ): + + def output_is_dynamic(output): + if not output.collection: + return False + return output.dynamic_structure + + return any( map( output_is_dynamic, self.outputs.values() ) ) + def __get_job_tool_configuration(self, job_params=None): """Generalized method for getting this tool's job configuration. diff --git a/lib/galaxy/workflow/run.py b/lib/galaxy/workflow/run.py index 6a07fe4869b..1eb7ed0c40c 100644 --- a/lib/galaxy/workflow/run.py +++ b/lib/galaxy/workflow/run.py @@ -50,6 +50,8 @@ def force_queue( trans, workflow ): if step.type == "data_collection_input" and force_for_collection: log.info("Found collection input step - backgrounding execution") return True + if step.type == "tool" and step.module.tool.produces_collections_with_unknown_structure: + return True return False From af62976cc87a968be1ee4fb920c0fcc6316c41b6 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 30 Jun 2015 11:41:00 -0400 Subject: [PATCH 2/7] Add log statement in previous fix for consistency. Thanks for the tip @dannon. --- lib/galaxy/workflow/run.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/galaxy/workflow/run.py b/lib/galaxy/workflow/run.py index 1eb7ed0c40c..7d587ca1aca 100644 --- a/lib/galaxy/workflow/run.py +++ b/lib/galaxy/workflow/run.py @@ -51,6 +51,7 @@ def force_queue( trans, workflow ): log.info("Found collection input step - backgrounding execution") return True if step.type == "tool" and step.module.tool.produces_collections_with_unknown_structure: + log.info("Found dynamically structured output collection - backgrounding execution") return True return False From 8b7a455b01f8394925fb0398fa57a7ffad241139 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 30 Jun 2015 13:46:12 -0400 Subject: [PATCH 3/7] Disable custome tooltips for histograms --- config/plugins/visualizations/charts/static/build-app.js | 7 +------ .../charts/static/charts/nvd3/histogram/config.js | 7 ++++--- .../charts/static/charts/nvd3/histogram_discrete/config.js | 7 ++++--- .../plugins/visualizations/charts/static/views/editor.js | 4 ++-- .../plugins/visualizations/charts/static/views/viewport.js | 2 +- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/config/plugins/visualizations/charts/static/build-app.js b/config/plugins/visualizations/charts/static/build-app.js index ccd7acfa3b3..f3d997cf9e7 100644 --- a/config/plugins/visualizations/charts/static/build-app.js +++ b/config/plugins/visualizations/charts/static/build-app.js @@ -1,6 +1 @@ -// Underscore.js 1.7.0 -// http://underscorejs.org -// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. - -define("mvc/ui/ui-modal",[],function(){var e=Backbone.View.extend({elMain:"body",optionsDefault:{title:"ui-modal",body:"",backdrop:!0,height:null,width:null,closing_events:!1,closing_callback:null},buttonList:{},initialize:function(e){e&&this._create(e)},show:function(e){this.initialize(e),this.options.height?(this.$body.css("height",this.options.height),this.$body.css("overflow","hidden")):this.$body.css("max-height",$(window).height()/2),this.options.width&&this.$dialog.css("width",this.options.width),this.visible?this.$el.show():this.$el.fadeIn("fast"),this.visible=!0},hide:function(){this.visible=!1,this.$el.fadeOut("fast"),this.options.closing_callback&&this.options.closing_callback()},enableButton:function(e){var t=this.buttonList[e];this.$buttons.find("#"+t).prop("disabled",!1)},disableButton:function(e){var t=this.buttonList[e];this.$buttons.find("#"+t).prop("disabled",!0)},showButton:function(e){var t=this.buttonList[e];this.$buttons.find("#"+t).show()},hideButton:function(e){var t=this.buttonList[e];this.$buttons.find("#"+t).hide()},getButton:function(e){var t=this.buttonList[e];return this.$buttons.find("#"+t)},scrollTop:function(){return this.$body.scrollTop()},_create:function(e){var t=this;this.options=_.defaults(e,this.optionsDefault),this.options.body=="progress"&&(this.options.body=$('
')),this.$el&&(this.$el.remove(),$(document).off("keyup.ui-modal")),this.setElement(this._template(this.options.title)),this.$dialog=this.$el.find(".modal-dialog"),this.$body=this.$el.find(".modal-body"),this.$footer=this.$el.find(".modal-footer"),this.$buttons=this.$el.find(".buttons"),this.$backdrop=this.$el.find(".modal-backdrop"),this.$body.html(this.options.body),this.options.backdrop||this.$backdrop.removeClass("in");if(this.options.buttons){this.buttonList={};var n=0;$.each(this.options.buttons,function(e,r){var i="button-"+n++;t.$buttons.append($('').text(e).click(r)).append(" "),t.buttonList[e]=i})}else this.$footer.hide();$(this.elMain).append($(this.el)),this.options.closing_events&&($(document).on("keyup.ui-modal",function(e){e.keyCode==27&&t.hide()}),this.$el.find(".modal-backdrop").on("click",function(){t.hide()}))},_template:function(e){return'