From 8951708299452be7138c5ef972f55cad93caf51f Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Fri, 25 Sep 2020 10:34:49 +0200 Subject: [PATCH 1/3] Fix webless handler --attach-to-pool We need to create a connection before reading dialect.server_version_info. See https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect Fixes https://github.com/galaxyproject/galaxy-helm/issues/160 --- lib/galaxy/web_stack/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/galaxy/web_stack/__init__.py b/lib/galaxy/web_stack/__init__.py index 8f3a0a8d251..f40467adecb 100644 --- a/lib/galaxy/web_stack/__init__.py +++ b/lib/galaxy/web_stack/__init__.py @@ -533,6 +533,9 @@ class WeblessApplicationStack(ApplicationStack): # isolation if it doesn't, or DB_PREASSIGN if the job_config doesn't allow either. conf_class_name = job_config.__class__.__name__ remove_methods = [HANDLER_ASSIGNMENT_METHODS.DB_SELF] + with self.app.model.session.connection(): + # Force a connection so dialect.server_version_info is populated + pass dialect = self.app.model.session.bind.dialect if ((dialect.name == 'postgresql' and dialect.server_version_info >= (9, 5)) or (dialect.name == 'mysql' and dialect.server_version_info >= (8, 0, 1))): From 5ee773564cba3aafa99e1727800bc4080905cea5 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Sun, 27 Sep 2020 01:03:10 +0100 Subject: [PATCH 2/3] Fix container resolution when requirement version is not specified and no useful container is in the cache. Fix the following traceback: ``` 2020-09-27 01:11:44,352 INFO [galaxy.tool_util.deps.containers] Checking with container resolver [ExplicitContainerResolver[]] found description [None] 2020-09-27 01:11:44,461 INFO [galaxy.tool_util.deps.containers] Checking with container resolver [CachedMulledDockerContainerResolver[namespace=biocontainers]] found description [None] 2020-09-27 01:11:44,565 INFO [galaxy.tool_util.deps.containers] Checking with container resolver [CachedMulledDockerContainerResolver[namespace=local]] found description [None] 2020-09-27 01:11:45,117 ERROR [galaxy.tool_util.deps.containers] Could not get container description for tool 'gstf_preparation' Traceback (most recent call last): File "/tmp/tmpi_lg_ln2/galaxy-dev/lib/galaxy/tool_util/deps/containers.py", line 240, in find_best_container_description resolved_container_description = self.resolve(enabled_container_types, tool_info, **kwds) File "/tmp/tmpi_lg_ln2/galaxy-dev/lib/galaxy/tool_util/deps/containers.py", line 261, in resolve container_description = container_resolver.resolve(enabled_container_types, tool_info, resolution_cache=resolution_cache) File "/tmp/tmpi_lg_ln2/galaxy-dev/lib/galaxy/tool_util/deps/container_resolvers/mulled.py", line 411, in resolve name = targets_to_mulled_name(targets=targets, hash_func=self.hash_func, namespace=self.namespace, resolution_cache=resolution_cache) File "/tmp/tmpi_lg_ln2/galaxy-dev/lib/galaxy/tool_util/deps/container_resolvers/mulled.py", line 285, in targets_to_mulled_name version, build = split_tag(tags[0]) ValueError: not enough values to unpack (expected 2, got 1) ``` --- .../deps/container_resolvers/mulled.py | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/lib/galaxy/tool_util/deps/container_resolvers/mulled.py b/lib/galaxy/tool_util/deps/container_resolvers/mulled.py index fd184fdd3c4..7c187a0d665 100644 --- a/lib/galaxy/tool_util/deps/container_resolvers/mulled.py +++ b/lib/galaxy/tool_util/deps/container_resolvers/mulled.py @@ -269,21 +269,17 @@ def targets_to_mulled_name(targets, hash_func, namespace, resolution_cache=None) tags = mulled_tags_for(namespace, target.package_name, resolution_cache=resolution_cache) if tags: - if target_version: - for tag in tags: - if '--' in tag: - version, build = split_tag(tag) - else: - version = tag - build = None - if version == target_version: - name = "%s:%s" % (target.package_name, version) - if build: - name = "%s--%s" % (name, build) - break - else: - version, build = split_tag(tags[0]) - name = "%s:%s--%s" % (target.package_name, version, build) + for tag in tags: + if '--' in tag: + version, build = split_tag(tag) + else: + version = tag + build = None + if target_version and version == target_version: + name = "%s:%s" % (target.package_name, version) + if build: + name = "%s--%s" % (name, build) + break else: def first_tag_if_available(image_name): From 19f64c9c8c2adf3545a1ce1b1baabd35f72ddd98 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Mon, 28 Sep 2020 23:52:00 +0100 Subject: [PATCH 3/3] Simplify code Co-authored-by: Marius van den Beek --- lib/galaxy/tool_util/deps/container_resolvers/mulled.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/tool_util/deps/container_resolvers/mulled.py b/lib/galaxy/tool_util/deps/container_resolvers/mulled.py index 7c187a0d665..56af4def08a 100644 --- a/lib/galaxy/tool_util/deps/container_resolvers/mulled.py +++ b/lib/galaxy/tool_util/deps/container_resolvers/mulled.py @@ -271,14 +271,11 @@ def targets_to_mulled_name(targets, hash_func, namespace, resolution_cache=None) if tags: for tag in tags: if '--' in tag: - version, build = split_tag(tag) + version, _ = split_tag(tag) else: version = tag - build = None if target_version and version == target_version: - name = "%s:%s" % (target.package_name, version) - if build: - name = "%s--%s" % (name, build) + name = "%s:%s" % (target.package_name, tag) break else: