Merge branch 'master' into dev

This commit is contained in:
Dannon Baker
2015-07-01 14:29:13 -04:00
7 changed files with 35 additions and 16 deletions
File diff suppressed because one or more lines are too long
@@ -1,6 +1,7 @@
define(['plugin/charts/nvd3/common/config'], function(nvd3_config) {
return $.extend(true, {}, nvd3_config, {
define(['plugin/charts/forms/default'], function(config_default) {
return $.extend(true, {}, config_default, {
library : 'NVD3',
tag : 'svg',
title : 'Histogram',
category : 'Data processing (requires \'charts\' tool from Toolshed)',
execute : 'histogram',
@@ -1,6 +1,7 @@
define(['plugin/charts/nvd3/common/config'], function(nvd3_config) {
return $.extend(true, {}, nvd3_config, {
define(['plugin/charts/forms/default'], function(config_default) {
return $.extend(true, {}, config_default, {
library : 'NVD3',
tag : 'svg',
title : 'Discrete Histogram',
category : 'Data processing (requires \'charts\' tool from Toolshed)',
execute : 'histogramdiscrete',
@@ -211,7 +211,7 @@ return Backbone.View.extend({
// add group model
_addGroupModel: function() {
var group = new Group({
id : Utils.uuid()
id : Utils.uid()
});
this.chart.groups.add(group);
return group;
@@ -260,7 +260,7 @@ return Backbone.View.extend({
// reset
_resetChart: function() {
// reset chart details
this.chart.set('id', Utils.uuid());
this.chart.set('id', Utils.uid());
this.chart.set('type', 'nvd3_bar');
this.chart.set('dataset_id', this.app.options.config.dataset_id);
this.chart.set('title', 'New Chart');
@@ -295,7 +295,7 @@ return Backbone.View.extend({
_templateContainer: function(tag, width) {
return '<div class="charts-viewport-container" style="width:' + width + '%;">' +
'<div id="menu"/>' +
'<' + tag + ' id="' + Utils.uuid() + '" class="charts-viewport-canvas">' +
'<' + tag + ' id="' + Utils.uid() + '" class="charts-viewport-canvas">' +
'</div>';
}
+10
View File
@@ -531,6 +531,16 @@ class Tool( object, Dictifiable ):
return any( map( output_is_dynamic_collection, 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.
+13 -1
View File
@@ -33,6 +33,12 @@ BASIC_WORKFLOW_STEP_TYPES = [ None, "tool", "data_input", "data_collection_input
def force_queue( trans, workflow ):
# Default behavior is still to just schedule workflows completley right
# away. This can be modified here in various ways.
# TODO: check for implicit connections - these should also force backgrounding
# this would fix running Dan's data manager workflows via UI.
# TODO: ensure state if populated before calling force_queue from old API
# workflow endpoint so the has_module check below is unneeded and these
# interesting workflows will work with the older endpoint.
config = trans.app.config
force_for_collection = config.force_beta_workflow_scheduled_for_collections
force_min_steps = config.force_beta_workflow_scheduled_min_steps
@@ -42,6 +48,10 @@ def force_queue( trans, workflow ):
log.info("Workflow has many steps %d, backgrounding execution" % step_count)
return True
for step in workflow.steps:
# State and module haven't been populated if workflow submitted via
# the API. API requests for "interesting" workflows should use newer
# endpoint that skips this check entirely - POST /api/workflows/<id>/invocations
has_module = hasattr(step, "module")
if step.type not in BASIC_WORKFLOW_STEP_TYPES:
log.info("Found non-basic workflow step type - backgrounding execution")
# Force all new beta modules types to be use force queueing of
@@ -50,7 +60,9 @@ 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 has_module and step.module.tool.produces_collections_with_unknown_structure:
log.info("Found dynamically structured output collection - backgrounding execution")
return True
return False