From 610b7678dacfa29bf142888b4a39cbba10423629 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Mon, 13 May 2019 14:25:51 -0400 Subject: [PATCH 1/4] cellxgene GIE: use API to get datasets. No longer requires volume mounts, so useable on main. Also updates to latest version of cellxgene in container. --- .../cellxgene/config/allowed_images.yml.sample | 2 +- .../interactive_environments/cellxgene/docker/Dockerfile | 6 +++++- .../cellxgene/docker/run_cellxgene.sh | 4 +++- .../cellxgene/templates/cellxgene.mako | 9 ++++----- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/config/plugins/interactive_environments/cellxgene/config/allowed_images.yml.sample b/config/plugins/interactive_environments/cellxgene/config/allowed_images.yml.sample index f3ec2cde2b8..2a4edc35be7 100644 --- a/config/plugins/interactive_environments/cellxgene/config/allowed_images.yml.sample +++ b/config/plugins/interactive_environments/cellxgene/config/allowed_images.yml.sample @@ -1,5 +1,5 @@ --- - - image: quay.io/galaxy/cellxgene-galaxy-ie:2019.01.30 + image: quay.io/galaxy/cellxgene-galaxy-ie:2019.05.13 description: | An interactive data explorer for single-cell transcriptomics datasets diff --git a/config/plugins/interactive_environments/cellxgene/docker/Dockerfile b/config/plugins/interactive_environments/cellxgene/docker/Dockerfile index b172e4a0ec5..cd842996fb9 100644 --- a/config/plugins/interactive_environments/cellxgene/docker/Dockerfile +++ b/config/plugins/interactive_environments/cellxgene/docker/Dockerfile @@ -1,6 +1,10 @@ FROM python:3.6.8-slim + +RUN apt-get update && apt-get install -y \ + net-tools \ + && rm -rf /var/lib/apt/lists/* -RUN pip3 install cellxgene && rm -rf ~/.cache +RUN pip3 install cellxgene galaxy-ie-helpers && rm -rf ~/.cache ADD ./run_cellxgene.sh / diff --git a/config/plugins/interactive_environments/cellxgene/docker/run_cellxgene.sh b/config/plugins/interactive_environments/cellxgene/docker/run_cellxgene.sh index 0759da7af8e..30fd71b2e05 100755 --- a/config/plugins/interactive_environments/cellxgene/docker/run_cellxgene.sh +++ b/config/plugins/interactive_environments/cellxgene/docker/run_cellxgene.sh @@ -1,3 +1,5 @@ #!/bin/sh -cellxgene launch --host 0.0.0.0 --port 80 /input/file.* +get -i ${DATASET_HID} \ + && mv /import/${DATASET_HID} /import/${DATASET_HID}.h5ad \ + && cellxgene launch --host 0.0.0.0 --port 80 /import/${DATASET_HID}.h5ad diff --git a/config/plugins/interactive_environments/cellxgene/templates/cellxgene.mako b/config/plugins/interactive_environments/cellxgene/templates/cellxgene.mako index 8651f5b50af..1965844f09c 100644 --- a/config/plugins/interactive_environments/cellxgene/templates/cellxgene.mako +++ b/config/plugins/interactive_environments/cellxgene/templates/cellxgene.mako @@ -2,12 +2,11 @@ <% ie_request.load_deploy_config() - # Make the dataset available inside the container - data_file = ie_request.volume('/input/file.' + hda.ext, hda.file_name, mode='ro') - ie_request.launch( - image = trans.request.params.get('image_tag', None), - volumes = [data_file] + image = trans.request.params.get('image_tag', None), + env_override={ + 'dataset_hid': hda.hid + } ) url = ie_request.url_template('${PROXY_URL}') From 9220d2f39a10fb0bdae6925a1c6d29ef77bd74de Mon Sep 17 00:00:00 2001 From: M Bernt Date: Wed, 15 May 2019 10:09:48 +0200 Subject: [PATCH 2/4] output_checker: fixed wrong comparison - fixed comparison (which was always true before -- except if my intuition on how Bunch works is wrong) - always log state to info --- lib/galaxy/jobs/output_checker.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/jobs/output_checker.py b/lib/galaxy/jobs/output_checker.py index a5fb26ba0e5..10e46776c16 100644 --- a/lib/galaxy/jobs/output_checker.py +++ b/lib/galaxy/jobs/output_checker.py @@ -77,6 +77,7 @@ def check_output(stdio_regexes, stdio_exit_codes, stdout, stderr, tool_exit_code max_error_level = StdioErrorLevel.NO_ERROR if tool_exit_code is not None: for stdio_exit_code in stdio_exit_codes: + log.debug("checking exit code: $d-%d"%(stdio_exit_code.range_start,stdio_exit_code.range_end)) if (tool_exit_code >= stdio_exit_code.range_start and tool_exit_code <= stdio_exit_code.range_end): # Tack on a generic description of the code @@ -146,10 +147,12 @@ def check_output(stdio_regexes, stdio_exit_codes, stdout, stderr, tool_exit_code if stderr: state = DETECTED_JOB_STATE.GENERIC_ERROR - if DETECTED_JOB_STATE != DETECTED_JOB_STATE.OK and stderr: + if state != DETECTED_JOB_STATE.OK and stderr: if stderr: peak = stderr[0:ERROR_PEAK] - log.debug("job failed, standard error is - [%s]" % peak) + else: + peak = "" + log.debug("job failed, detected %s, standard error is - [%s]" % peak) except Exception: log.exception("Job state check encountered unexpected exception; assuming execution successful") From 55e8f3a45b8b2b7516f9a67b374d0bd94408031f Mon Sep 17 00:00:00 2001 From: M Bernt Date: Wed, 15 May 2019 10:59:12 +0200 Subject: [PATCH 3/4] output_checker: fixed linter issues --- lib/galaxy/jobs/output_checker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/jobs/output_checker.py b/lib/galaxy/jobs/output_checker.py index 10e46776c16..89494bfdded 100644 --- a/lib/galaxy/jobs/output_checker.py +++ b/lib/galaxy/jobs/output_checker.py @@ -77,7 +77,7 @@ def check_output(stdio_regexes, stdio_exit_codes, stdout, stderr, tool_exit_code max_error_level = StdioErrorLevel.NO_ERROR if tool_exit_code is not None: for stdio_exit_code in stdio_exit_codes: - log.debug("checking exit code: $d-%d"%(stdio_exit_code.range_start,stdio_exit_code.range_end)) + log.debug("checking exit code: $d-%d" % (stdio_exit_code.range_start, stdio_exit_code.range_end)) if (tool_exit_code >= stdio_exit_code.range_start and tool_exit_code <= stdio_exit_code.range_end): # Tack on a generic description of the code From 23e9a35d9bcabed03b3d8eb27278508201f7eaf9 Mon Sep 17 00:00:00 2001 From: M Bernt Date: Wed, 15 May 2019 11:26:50 +0200 Subject: [PATCH 4/4] output_checker: added missing state in output --- lib/galaxy/jobs/output_checker.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/galaxy/jobs/output_checker.py b/lib/galaxy/jobs/output_checker.py index 89494bfdded..0d4bae30de6 100644 --- a/lib/galaxy/jobs/output_checker.py +++ b/lib/galaxy/jobs/output_checker.py @@ -77,7 +77,6 @@ def check_output(stdio_regexes, stdio_exit_codes, stdout, stderr, tool_exit_code max_error_level = StdioErrorLevel.NO_ERROR if tool_exit_code is not None: for stdio_exit_code in stdio_exit_codes: - log.debug("checking exit code: $d-%d" % (stdio_exit_code.range_start, stdio_exit_code.range_end)) if (tool_exit_code >= stdio_exit_code.range_start and tool_exit_code <= stdio_exit_code.range_end): # Tack on a generic description of the code @@ -152,7 +151,7 @@ def check_output(stdio_regexes, stdio_exit_codes, stdout, stderr, tool_exit_code peak = stderr[0:ERROR_PEAK] else: peak = "" - log.debug("job failed, detected %s, standard error is - [%s]" % peak) + log.debug("job failed, detected state %s, standard error is - [%s]" % (state, peak)) except Exception: log.exception("Job state check encountered unexpected exception; assuming execution successful")