Commit Graph
61 Commits
Author SHA1 Message Date
John Chilton 4cd0883b0f Allow returning error messages from Galaxy-flavored expression tools. 2020-11-17 11:46:36 +01:00
John Chilton a7a8754e24 Harden, formalize 'null' handling around booelan tool parameters and between workflow steps.
Important for expression tools and implementing CWL-style conditionals.
2020-11-11 19:44:16 -05:00
Dannon Baker e2461e5c5b Remainder of py3-only feature updates. 2020-06-26 08:26:00 -04:00
Helena Rasche 98fc625f91 Merge branch 'dev' into container_monitor 2020-04-20 17:01:32 +02:00
John Chilton f71d970963 Adjust monitor.py for the fact Pulsar and Galaxy call from different dirs. 2020-02-19 09:53:10 -05:00
John Chilton 04b21a06ff Allow remote container port monitoring for ITs.
Tested with Pulsar but not sure there is anything Pulsar specific about the implementation - simply set container_monitor_result on the job destination to 'callback' (instead of implicit default of 'file'). This causes the monitor.py script to hit a new job_ports API (that mirrors job_files API) and uses the same security mechanism (per-job keys that are only active while the job is active).

PR contains fixes for embedded Pulsar configuration handling, embedded Pulsar under uwsgi, and the introduction of new feature that allows dynamic expansion of ``$UWSGI_PORT`` inside of galaxy_infrastructure_url.
2020-02-19 09:53:10 -05:00
John Chilton aa2e6f2143 Refactor container montior for reuse of block. 2020-02-19 09:53:10 -05:00
Gianmauro Cuccuru e5d1a7f167 move the function into a different path 2020-02-11 15:07:07 +01:00
Gianmauro Cuccuru 55dc0e6a2f add a new function to get the local ip address 2020-02-11 11:16:37 +01:00
Nicola Soranzo a639c935c3 Filter Python 2 deprecation warning from cwltool
which makes some tools fail by printing to stderr:
```
galaxy.tool_util.output_checker DEBUG 2020-01-07 02:59:07,720 job failed, detected state generic_error, standard error is - [/galaxy_venv/local/lib/python2.7/site-packages/cwltool/__init__.py:17: CWLToolDeprecationWarning:
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020.
Please upgrade your Python as the Python 2.7 version of cwltool won't be
maintained after that date.

  """,  category=CWLToolDeprecationWarning)
]
```
2020-01-13 17:35:40 +02:00
Nicola Soranzo 6b7a823cb3 Filter Python 2 deprecation warning from cwltool
which makes some tools fail by printing to stderr:
```
galaxy.tool_util.output_checker DEBUG 2020-01-07 02:59:07,720 job failed, detected state generic_error, standard error is - [/galaxy_venv/local/lib/python2.7/site-packages/cwltool/__init__.py:17: CWLToolDeprecationWarning:
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020.
Please upgrade your Python as the Python 2.7 version of cwltool won't be
maintained after that date.

  """,  category=CWLToolDeprecationWarning)
]
```
2020-01-10 11:03:46 +00:00
mvdbeek d5fc7d426e Fix interactivetool python 3 support and tests
- enables docker destination for interactivetool tests
- fixes a wrong argument in entrypoint management
- fixes the test setup that targeted a previous iteration (which was
  still called realtimetools)
- prevents deleting the working directory before python has a chance to
  start the container monitor (that's the sleep command)
- fixes some odd interactive tool test assertions
- uses unicode arguments in key_type_token_mapping.py.
  uwsgi arguments are always passed as bytestrings.
2020-01-09 14:40:48 +01:00
Nicola Soranzo 1663c9e331 Check host_ip only once 2019-10-30 15:30:03 +00:00
John Chilton ff08885c2e Only re-map container monitor host if can find IP and have 0.0.0.0. 2019-10-30 11:03:20 -04:00
John Chilton 352e751927 Revert hacking IPs in container monitor script.
It breaks the Mac setup and seems just wrong, docker might not be on localhost. This needs to be made more specific in some way and should handle those socker commands not working on OS X.
2019-10-29 10:12:38 -04:00
Nate Coraor ddd950e209 Lint fixes 2019-10-24 17:46:28 -04:00
Nate Coraor 1ea1990959 Galaxy InteractiveTools cluster fixes from EU 2019-10-24 17:12:21 -04:00
Daniel Blankenberg f231e42c48 Merge branch 'dev' of https://github.com/galaxyproject/galaxy into realtimetools 2019-07-05 16:43:01 +02:00
John Chilton 16b7d6a031 Move set metadata. 2019-06-12 14:43:45 -04:00
John Chilton de30bde5e4 Refactor galaxy.tools.provided_metadata -> galaxy.tool_util.
Needed for remote job output metadata collection.
2019-06-12 14:43:44 -04:00
Daniel Blankenberg ccc4fc482f Merge branch 'dev' of https://github.com/galaxyproject/galaxy into realtimetools 2019-06-06 17:39:45 -04:00
John Chilton c6e5a86e80 Fix finding datatype's registry for metadata collection on Pulsar. 2019-06-03 13:35:59 -04:00
John Chilton 5f4bebd2ce Fix portable remote metadata output files...
... three features not working together super well.
2019-06-03 13:35:58 -04:00
John Chilton e7d4265aaf Add missing container_monitor package to previous commits. 2019-05-28 09:14:32 -04:00
John Chilton 8e6ac481f9 Fix composite datatype handling for storing objects by UUID. 2019-04-04 08:11:56 -04:00
John Chilton f427a74dd9 More changes to expression tool commit thanks to @mvdbeek. 2019-03-19 18:25:08 -04:00
John Chilton c2e67e3270 flake imports 2019-03-19 18:25:08 -04:00
John Chilton f5c93e868b Implement expression tools and non-data tool outputs.
PR #6925 introduced a GUI for connecting non-data (e.g. integer, boolean, color, etc..) workflow input parameter to tool input parameters (the backend for this was originally added in #1306). That ideally was just the beginning of work toward using such values in structured ways in workflows.

This PR extends tool output handling to allow producing of non-data parameters. These can serve as a source for non-data values in workflows the same work workflow input parameters can. To make such values more easy to produce, this PR also introduces Galaxy expression tools - mirroring functionality regularly used in CWL. These small JavaScript-based tools that consume inputs just like a regular Galaxy tool but that produce dictionary of non-data values.

I think these expressions will be maximally useful when paired with format 2 workflows once we allow users to load arbitrary tools (I make the case more in full here https://github.com/galaxyproject/galaxy/pull/7545#issuecomment-473894424), but I outline some potential uses there as well.

Because there is always a checklist in my PR descriptions:

- Tool definition language and plumbing and datatype for expressing expressions as jobs.
- Allow connecting expression tools to parameters in workflows, will delay evaluation of workflow so calculated value
- Example test expression tools for testing and demonstration.
2019-03-19 17:20:18 -04:00
John Chilton 1ca256aaba Merge pull request #7470 from jmchilton/portable_metadata
Implement portable metadata generation.
2019-03-11 09:57:13 -04:00
John Chilton f0912eb404 Fix set_metadata executing from wrong directory when using tool. 2019-03-10 21:15:56 -04:00
John Chilton 17cb35bc25 Use ToolProvidedMetadata abstraction in set_metadata.
There is are somethings that happen in set_metadata.py that assume the old style galaxy.json. This sets the stage for proper external metadata collection of newer style galaxy.json files.
2019-03-08 09:47:02 -05:00
John Chilton 1d0e4bcb2c New, portable metadata generation.
Variant of external metadata generation that doesn't use command-line arguments or absolute paths and simply takes operates on the current, job working directory and knows what to do.

- Uses relative paths allowing the directory to be staged elsewhere via Pulsar, Condor, or Docker for instance.
- Avoids DB objects for hard-coded paths making everything more robust.
- Avoids huge command-lines which for huge collection reduction jobs might hit system limits for command-line length.
- Uses JSON dicts to communicate parameters - meaning we can avoid awkward argument parsing as this evolves (see old max_metadata_value_size handling in set_metadata.py for instance).
- Uses output names instead of database IDs to key files - so file naming is consistent and human readable.
2019-03-08 09:47:02 -05:00
John Chilton 676cdf7678 Log exception in set_metadata.py.
We can finally do this as a result of #7095 I believe!
2019-03-07 12:33:38 -05:00
John Chilton 8bcda83aad Bug fix for reading metadata and extension from galaxy.json in set_metadata.py. 2019-01-15 09:43:29 -05:00
John Chilton d2b7e8af32 Refactor set_metadata.py to simplify provided metadata access. 2019-01-15 09:43:29 -05:00
John Chilton 10aa953a40 Merge pull request #7082 from jmchilton/legacy_hacks
Remove legacy job handling hacks.
2018-12-11 14:23:35 -05:00
John Chilton 5c384efb8d Fix via refactor set_metadata so more output metadata pruned properly. 2018-12-07 10:02:25 -05:00
John Chilton 2de4a0f72e Remove legacy job handling hacks.
These were left in to let Galaxy jobs complete after version upgrades, but the plan was always to remove them eventually.
2018-12-07 09:57:31 -05:00
mvdbeek cde7784606 py3: Fix metadata setting 2018-07-05 02:49:51 +01:00
John Chilton 65c1cd761c Fix data_source.py for upload changes in 18.05 release cycle.
handle_uploaded_dataset_file was used by tools external to ``lib/`` include data_source.py and potentially tools in the tool shed. This restores the interface as a wrapper around a new method handle_uploaded_dataset_file_internal.

Broken in https://github.com/galaxyproject/galaxy/commit/ef6f7f62ab679928045c816a3cb719fb3bcea507 I believe.
2018-05-22 13:21:41 -04:00
Nate Coraor ef6f7f62ab Memory usage bug fixes and code cleanup/simplification for upload tool 2018-03-15 14:32:02 -04:00
Nicola Soranzo 9b4de72ca6 Fix all E722 errors and ignore E741
Introduced in flake8 3.5.0
Fix import order.
2017-10-24 11:29:09 +01:00
Nate Coraor 2a2534789d Merge remote-tracking branch 'origin/release_17.09' into dev 2017-10-18 15:06:22 -04:00
mvdbeek 7fc354f118 Write out registry.xml file in case jobs are missing this file 2017-10-18 13:03:49 -04:00
John Chilton b76c040aa6 Hacks to set_metadata to fix previous commit. 2017-10-09 11:59:56 -04:00
Nate Coraor b442113e76 Don't use + on iterators. 2017-09-13 13:45:29 -04:00
Nate Coraor 191d11c4a0 Python 3 fixes for set_metadata.py 2017-09-13 13:27:56 -04:00
Nicola Soranzo 21b44bf348 Fix all E201 and E202 style errors
using the following command:
```
autopep8 -i -r --exclude $(sed -e 's|^|./|' -e 's|/$||' .ci/flake8_blacklist.txt | paste -sd,) --select E201,E202 .
```
2017-08-17 11:35:39 +01:00
John Chilton dfccd902b0 Fix setting metadata in galaxy.json for working directory isolation change.
This has been broken since 16.04 I guess? Maybe retry internally means it hasn't been an issue?
2016-08-04 13:36:38 -04:00
Dannon Baker aba34eecda Update to 'new' except style. 2016-05-16 13:37:53 -04:00