From 25ea088647b09ee9a212120d907430c11afbdf42 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Mon, 27 May 2019 23:16:29 +0100 Subject: [PATCH 1/4] Update Conda for new installs to v4.6.14 and conda-build to v3.17.8 . --- lib/galaxy/tools/deps/conda_util.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/tools/deps/conda_util.py b/lib/galaxy/tools/deps/conda_util.py index 546bc487325..d6d6f626fe6 100644 --- a/lib/galaxy/tools/deps/conda_util.py +++ b/lib/galaxy/tools/deps/conda_util.py @@ -35,19 +35,19 @@ CONDA_LICENSE = "http://docs.continuum.io/anaconda/eula" VERSIONED_ENV_DIR_NAME = re.compile(r"__(.*)@(.*)") UNVERSIONED_ENV_DIR_NAME = re.compile(r"__(.*)@_uv_") USE_PATH_EXEC_DEFAULT = False -CONDA_VERSION = "4.3.33" -CONDA_BUILD_VERSION = "2.1.18" +CONDA_VERSION = "4.6.14" +CONDA_BUILD_VERSION = "3.17.8" USE_LOCAL_DEFAULT = False def conda_link(): if IS_OS_X: - url = "https://repo.continuum.io/miniconda/Miniconda3-4.3.31-MacOSX-x86_64.sh" + url = "https://repo.anaconda.com/miniconda/Miniconda3-4.6.14-MacOSX-x86_64.sh" else: if sys.maxsize > 2**32: - url = "https://repo.continuum.io/miniconda/Miniconda3-4.3.31-Linux-x86_64.sh" + url = "https://repo.anaconda.com/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh" else: - url = "https://repo.continuum.io/miniconda/Miniconda3-4.3.31-Linux-x86.sh" + url = "https://repo.anaconda.com/miniconda/Miniconda3-4.5.12-Linux-x86.sh" return url From c70310946d588873cddecb13e8cd837bf3317b47 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 27 May 2019 18:19:06 +0200 Subject: [PATCH 2/4] Update node.post_job_actions when changing post job actions I broke persisting pot job actions in https://github.com/galaxyproject/galaxy/pull/7989. The onchange function prevented updating the post job action. --- client/galaxy/scripts/mvc/workflow/workflow-node.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-node.js b/client/galaxy/scripts/mvc/workflow/workflow-node.js index 6e69e6f7ac9..79daa41e42c 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-node.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-node.js @@ -66,6 +66,15 @@ var Node = Backbone.Model.extend({ output_terminal.force_datatype = datatype; output.force_datatype = datatype; this.nodeView.updateDataOutputView(output); + if (datatype) { + this.post_job_actions['ChangeDatatypeAction' + outputName] = { + action_arguments: {newtype: datatype}, + action_type: "ChangeDatatypeAction", + output_name: outputName, + }; + } else { + delete this.post_job_actions['ChangeDatatypeAction' + outputName]; + } this.markChanged(); output_terminal.destroyInvalidConnections(); }, From b1ea3d2da6f677d284dfc1457969c7468773d0ad Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Tue, 28 May 2019 12:33:38 +0200 Subject: [PATCH 3/4] Don't add new outputView because it resets mapOver This means we don't see the forced datataype on the node itself, but we maintain the noodle type, and the connection hints are correct. --- client/galaxy/scripts/mvc/workflow/workflow-node.js | 1 - client/galaxy/scripts/mvc/workflow/workflow-view-node.js | 8 -------- 2 files changed, 9 deletions(-) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-node.js b/client/galaxy/scripts/mvc/workflow/workflow-node.js index 79daa41e42c..c0ec037b35e 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-node.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-node.js @@ -65,7 +65,6 @@ var Node = Backbone.Model.extend({ const output = this.nodeView.outputViews[outputName].output; output_terminal.force_datatype = datatype; output.force_datatype = datatype; - this.nodeView.updateDataOutputView(output); if (datatype) { this.post_job_actions['ChangeDatatypeAction' + outputName] = { action_arguments: {newtype: datatype}, diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view-node.js b/client/galaxy/scripts/mvc/workflow/workflow-view-node.js index 88dd22f7314..65f08b97ef3 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view-node.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view-node.js @@ -115,14 +115,6 @@ export default Backbone.View.extend({ this.tool_body.append(outputView.$el.append(terminalView.terminalElements())); }, - updateDataOutputView: function(output) { - const terminalView = this.terminalViewForOutput(output); - const outputView = this.outputViews[output.name]; - const newOutputView = this.outputViewforOutput(output, terminalView); - newOutputView.$el.append(terminalView.terminalElements()); - outputView.$el.html(newOutputView.$el); - }, - redrawWorkflowOutputs: function() { _.each(this.outputViews, outputView => { outputView.redrawWorkflowOutput(); From c0c39d5969e96d635747cdaac8f4c6ac09ac7b92 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 29 May 2019 15:25:55 -0400 Subject: [PATCH 4/4] Default the maximum grab limit for handler database preassignment methods to unlimited as intended. Document the config param. --- lib/galaxy/jobs/__init__.py | 2 +- lib/galaxy/jobs/handler.py | 5 +++-- lib/galaxy/util/handlers.py | 4 +++- lib/galaxy/workflow/scheduling_manager.py | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py index 156c515d56c..6089ff55eb8 100644 --- a/lib/galaxy/jobs/__init__.py +++ b/lib/galaxy/jobs/__init__.py @@ -140,7 +140,7 @@ class JobConfiguration(ConfiguresHandlers): self.default_handler_id = None self.handler_assignment_methods = None self.handler_assignment_methods_configured = False - self.handler_max_grab = 1 + self.handler_max_grab = None self.destinations = {} self.destination_tags = {} self.default_destination_id = None diff --git a/lib/galaxy/jobs/handler.py b/lib/galaxy/jobs/handler.py index b48d2ca702a..a0e6711d0d5 100644 --- a/lib/galaxy/jobs/handler.py +++ b/lib/galaxy/jobs/handler.py @@ -107,8 +107,9 @@ class JobHandlerQueue(Monitors): .where(and_( model.Job.table.c.handler.in_(self.app.job_config.self_handler_tags), model.Job.table.c.state == model.Job.states.NEW)) \ - .order_by(model.Job.table.c.id) \ - .limit(self.app.job_config.handler_max_grab) + .order_by(model.Job.table.c.id) + if self.app.job_config.handler_max_grab: + subq = subq.limit(self.app.job_config.handler_max_grab) if method == HANDLER_ASSIGNMENT_METHODS.DB_SKIP_LOCKED: subq = subq.with_for_update(skip_locked=True) self.__grab_query = model.Job.table.update() \ diff --git a/lib/galaxy/util/handlers.py b/lib/galaxy/util/handlers.py index b7a398a7426..4bf45012324 100644 --- a/lib/galaxy/util/handlers.py +++ b/lib/galaxy/util/handlers.py @@ -90,7 +90,9 @@ class ConfiguresHandlers(object): self.handler_assignment_methods = [method] if self.handler_assignment_methods == [HANDLER_ASSIGNMENT_METHODS.MEM_SELF]: self.app.config.track_jobs_in_database = False - self.handler_max_grab = int(config_element.attrib.get('max_grab', self.handler_max_grab)) + self.handler_max_grab = config_element.attrib.get('max_grab', self.handler_max_grab) + if self.handler_max_grab is not None: + self.handler_max_grab = int(self.handler_max_grab) def _set_default_handler_assignment_methods(self): if not self.handler_assignment_methods_configured: diff --git a/lib/galaxy/workflow/scheduling_manager.py b/lib/galaxy/workflow/scheduling_manager.py index 968747fbcc1..5ca6342641d 100644 --- a/lib/galaxy/workflow/scheduling_manager.py +++ b/lib/galaxy/workflow/scheduling_manager.py @@ -47,7 +47,7 @@ class WorkflowSchedulingManager(ConfiguresHandlers): self.handlers = {} self.handler_assignment_methods_configured = False self.handler_assignment_methods = None - self.handler_max_grab = 1 + self.handler_max_grab = None self.default_handler_id = None self.__plugin_classes = self.__plugins_dict()