Commit Graph
1190 Commits
Author SHA1 Message Date
John Chilton 3020dcd037 Allow discovered datasets to use input data format in 'ext' definition. 2014-06-29 13:31:33 -05:00
John Chilton f0d018ae31 Merged in jmchilton/galaxy-central-fork-1 (pull request #423)
Allow tool conf `tool_path` resolution relative to conf file.
2014-06-24 18:54:52 -05:00
Carl Eberhard bdcbb78fc0 Fix: phantomjs apparently lacks the bind fn on the Function prototype - correct failures in history-panel (line 252) by using underscore bind instead; up the standard upload timeout interval for api tests 2014-06-24 17:02:23 -04:00
John Chilton 3d9da261d1 Allow tool conf 'tool_path' resolution relative to conf file.
Relative 'tool_path' directories are resolved relative to GALAXY_ROOT (or really working directory). This is probably the expected behavior - but I think it is advantageous to be able to find tools relative to the tool_conf file also. This can now be done using string.Template resolution of ${tool_conf_dir}.
2014-06-23 16:32:24 -05:00
Greg Von Kuster 88d6c68201 Add a dependency manager with tag attribute handler classes to manage the process of populating and unpopulating the toolshed and changeset_revision attributes for <repository> tag sets when uploading and importing / exporting repositories from the tool shed. 2014-06-21 14:15:20 -04:00
John Chilton 4a498fd8b4 Fix spelling error in API test. 2014-06-13 08:46:01 -05:00
John Chilton 7c0026a6df Fix failing unit tests for 60d8de4. 2014-06-13 00:58:23 -05:00
Dave Bouvier 2fba2b4660 Merge fix for dataset stdio. 2014-06-12 13:59:49 -04:00
Dave Bouvier 670d73bdea Revert change that ended up breaking display of job stdio in functional tests. 2014-06-12 13:40:04 -04:00
Dannon Baker dfe5954e5e Merged in jmchilton/galaxy-central-fork-1 (pull request #401)
Allow tools and deployers to specify optional Docker-based dependency resolution.
2014-06-12 11:09:04 -04:00
John Chilton 0e585cc360 Rework type-differentiated history contents routes.
url_for now can produce the routes I build by hand in say bioblend and the GUI.
2014-06-11 15:16:05 -05:00
John Chilton 7382944df0 Introduce unit(-ish) tests for routes.
Allows testing both how URLs are going to map to controllers and actions as well as testing what paths will be produced by url_for.

Requires some refactoring of Galaxy framework classes and buildapp to allow stubbing out actual instantiation of controllers, etc....
2014-06-11 15:16:05 -05:00
John Chilton f2f21e2bed Allow tools and deployers to specify optional Docker-based dependency resolution.
Testing it out:
---------------

 - Install [docker](http://docker.io) (tough, but getting easier).
 - Copy `test/functional/tools/catDocker.xml` to somewhere in `tools/` and add to `tool_conf.xml`.
 - Add `<param id="docker_enabled">true</param>` to your favorite job destination.
 - Run the tool.

Description and Configuration:
------------------------------

Works with all stock job runners including remote jobs with the LWR.

Supports file system isolation allowing deployer to determine what paths are exposed to container and optionally allowing these to be read-only. They can be overridden or extended but defaults are provided that attempt to guess what should be read-only and what should be writable based on Galaxy's configuration and the job destination. Lots of details and discussion in job_conf.xml.sample_advanced.

`$GALAXY_SLOTS` (however it is configured for the given runner) is passed into the container at runtime and will be available.

Tools are allowed to explicitly annotate what container should be used to run the tool. I added in hooks to allow a more expansive approach where containers could be linked to requirements and resolved that way. To be clear, this is not implemented at all but the class ContainerRegistry is instantiated, passed the list of requirements, and given the chance to return a list of potential containers... if someone wants to implement this someday.

From a reproducibility stand-point it makes sense for tool author's to have control over which container is selected, but there is this security and isolation aspect to these enhancements as well. So there are some more advanced options that allow deployers (instead of tool authors) to decide which containers are selected for jobs. `docker_default_container_id` can be added to a destination to cause that container to be used for all un-mapped tools - which will result in every job on that destination being run in a docker container. If the deployer does not even trust those tools annotated with image ids - they can go a step further and set `docker_container_id_override` instead. This will likewise cause all jobs to run in a container - but the tool details themselves will be ignored and *EVERY* tool will use the specified container.

Additional advanced docker options are available to control memory, enable network access (disabled by default), where docker is found, if and how sudo is used, etc.... These are all documented in `job_conf.xml.sample_advanced`.

Implementation Details:
-----------------------

Metadata is set outside the container - so the container itself only needs to supply the underlying application and doesn't need to be configured with Galaxy for instance. Likewise - traditional `tool_dependency_dir` based dependency resolution is disabled when job is run in a container - for now it is assumed the container will supply these dependencies.

What's Next:
------------

If implementation is merged, much is left to be discussed and worked through - how to fetch and control what images are fetched (right now the code just assumes if you have docker enabled all referenced images are available), where to fetch images from, tool shed integration (host a tool shed docker repository?, services to build docker images preconfigured with tool shed depedencies?), etc.... This is meant as more of a foundation for the dependency resolution and job runner portions of this.
2014-06-07 01:45:05 -05:00
John Chilton 93ac4b7633 Fix unit tests for 46a487e. 2014-06-03 12:48:18 -05:00
John Chilton 7dc073a8b7 Mechanism to define site-specific parameters to aid defining job destinations.
This is based on work by Hector del Risco at the University of Florida.

Various tool-style parameters can be defined in job_resource_params_conf.xml (see sample) and these define the pool of all possible resource parameters that can be injected into a tool. These can be groupped together and assigned to tools in job_conf.xml (see documented changes to job_conf.xml.sample_advanced).

A conditional is then injected into each tool that gives the end-user the ability to select these parameters. The values of these parameters (as a dict) can then be obtained by dynamic job destination that define a 'resource_params' argument.

Lots here still needs to be tested/verified - can workflows exported from Galaxies without resource parameters (or different ones, be reused in Galaxies with resource parameters) (I think yes?)? can workflows exported with resource parameters be used in other Galaxies (I think yes?), how best to present UI while running workflows? (maybe nothing needs to be changed), should exported job parameter data be swept clean (say when exporting a workflow for instance).

A great extension to this would be to support conditional when defining parameters.

Finally, the Galaxy team will make a reasonable effort to support this syntax for job_conf.xml, job_resource_params_conf.xml, and internal interface for job parameters for sometime once this changeset has reached -stable but until these interfaces may change.
2014-06-03 12:48:18 -05:00
John Chilton d0f33bc14e Fix unit tests for 315997f. 2014-06-01 18:30:44 -05:00
John Chilton 533cdb9ce7 Unit tests for RunnerParams.
Small changes to make this easier - mostly just defining constants.
2014-05-29 00:15:38 -05:00
John Chilton a726f11df7 More extract functional tests.
Add test for extracting copied, mapped datasets and copied input dataset collections from history.
2014-05-28 20:25:53 -05:00
John Chilton 605532e5ba Bugfix for a06c6c9.
With improved testing :).
2014-05-28 20:25:53 -05:00
John Chilton 2e667131a8 Collections: Add API ability to copy HDCA mirroring HDA operations. 2014-05-28 15:28:55 -05:00
Greg Von Kuster 390d05bbd1 Eliminate the Tool Shed's td_common_util.py module by moving the functions to appropriate classes. 2014-05-28 15:49:02 -04:00
John Chilton f06ce6a42f Workflow extraction test from copied datasets.
Detailed some bugs I found in the test case and recorded them here https://trello.com/c/mKzLbM2P.
2014-05-28 11:58:33 -05:00
John Chilton 86a3b94d58 Improvements to workflow extraction tests. 2014-05-28 11:58:33 -05:00
Greg Von Kuster b2f3d6a551 Continued down-sizing of the Tool Shed's shed_util_common module by moving certain functions to more appropriate locations. Some fixes for adding and removing entries to the Tool Shed's repository registry. 2014-05-28 11:17:50 -04:00
John Chilton f009c80d6d Merge next-stable. 2014-05-27 12:53:20 -05:00
John Chilton cda34115c5 Bugfix: Workflow editor would unnessecarily leave nodes in mapped over state when no connections force it.
Other small code harmonizations to do this cleanly.
2014-05-27 12:52:41 -05:00
John Chilton b8de16eff2 Bugfix: Fix another attachable bug related to collections and multiple inputs (like 1882eff).
With unit tests that would have prevented both bugs.
2014-05-27 12:52:41 -05:00
John Chilton 430fbc6bf5 Unit tests (would have prevented bug in 4044a2a and similar bugs). 2014-05-27 12:52:41 -05:00
John Chilton e3fbe97116 Bugfix: More left/right -> forward/reverse fixes. 2014-05-27 12:52:41 -05:00
John Chilton 3e7b1b511a Bugfix: Hadn't implemented clean way to iterate of collection element names in tools.
Perhaps stretching the definition of bugfix here to get this in next-stable.
2014-05-27 12:52:41 -05:00
John Chilton c29c730ab9 Merge latest next-stable. 2014-05-27 08:21:18 -05:00
John Chilton fc8ee54ce2 Bugfix: Explicitly enforce implicit collection unique element identifier constraint.
Think this is responsible for bug when collections API does not create as many collections as requested.
2014-05-27 08:20:39 -05:00
Greg Von Kuster f13d6fde70 Enhance the Tool Shed API as well as the Tool Shed's install and test framework in order to integrate the latter into the Tool Shed's new repository registry. 2014-05-23 13:18:06 -04:00
John Chilton e03c52f214 Merge next-stable. 2014-05-21 14:33:51 -05:00
John Chilton b0c250d791 Fix provenance controller for non-admins.
Cannot pass check_accessible=True to get_object with HistoryDatasetAssociations (because item.user is undefined.).
2014-05-21 14:33:24 -05:00
John Chilton e6a5f06066 More stdio handling tests. 2014-05-21 11:11:39 -05:00
Daniel Blankenberg 75aa0a2a9b First pass at allowing dbkeys / genome builds to be loaded from Tool Data Tables. 2014-05-19 15:08:26 -04:00
John Chilton cb87cf4c27 Merged in jmchilton/galaxy-central-fork-1 (pull request #384)
Local Job Runner Enhancements
2014-05-18 21:12:36 -05:00
John Chilton f33bb43025 Merged in jmchilton/galaxy-central-fork-1 (pull request #389)
Small Column Parameter Enhancements
2014-05-15 13:49:44 -05:00
John Chilton 8e6bcf72c7 Merged in jmchilton/galaxy-central-fork-1 (pull request #387)
Recursive Tool Parameter Dictification
2014-05-15 13:43:43 -05:00
John Chilton d7b4b36756 Change paired collections terminology from left/right to forward/reverse.
If you have paired datasets in your database they will no longer work - send me an e-mail and I can give you an SQL update statement.
2014-05-15 13:01:36 -05:00
Greg Von Kuster 5b3e02d5c3 Phase 2 of the tool dependency package installation framework rewrite: 1) rename the RecipeManager class to be the StepManager class and add a new TagManager class, both of which are contained in the recipe_manager.py module. 2) Add appropriate new classes for handling recipe tag sets to a new tag_handler.py module. Add a new InstallManager class with functions for installing tool dependencies. Eliminate the use of fabric_util.py and install_util.py. 2014-05-14 14:55:31 -04:00
John Chilton 486dc41639 Bugfix for updating history dataset collection name.
Thanks to Bjoern for the bug report.

This attribute had been DatasetCollection in earlier versions of this code and the update code was only partially cut-over to use the new location for name (on HistoryDatasetCollectionAssociation).
2014-05-14 05:26:21 -05:00
John Chilton c79e4dcc40 Fix duplicated names in on_text when using multiple data inputs.
Unit tests verifing the fixed, correct behavior included. Bug introduced in e8c84dd715782e7c1d709d8068e6033b835f7f39 as an unintended consequence of duplicating the first dataset in the dictionary of input datasets generated by the tool action code.

Fixes https://trello.com/c/LCEKxImR.
2014-05-13 17:47:57 -05:00
John Chilton 22bddab240 Implement serializable class that can describe full dependency context for remote dependency resolution.
Previously LWR jut serialized tool requirements, by transitioning to this class LWR should be able to resolve tool shed installed packages as well - requiring the additional repository and tool dependency context.
2014-05-13 00:13:02 -05:00
Dave Bouvier 8dbc18a56f Fix for retrieving job streams with the twill interactor. 2014-05-12 16:27:49 -04:00
John Chilton 40f19d2a0f Allow c to appear in default value for Column parameters, allow specification with value attribute.
Ideas purposed by Peter Cock here - http://dev.list.galaxyproject.org/Default-value-for-data-column-not-working-tp4139574p4664492.html.
2014-05-12 12:01:14 -05:00
John Chilton dc5563371a Unit test case for tool column parameters.
Ever more duplication in these parameters tests, I need to find some time to refactor...
2014-05-12 12:01:14 -05:00
John Chilton fcae5f51ff Add API functional test for workflow extraction of collection reductions. 2014-05-11 13:56:49 -05:00
John Chilton 3109f70c3a Allow more typical expanded HDCA value with src when mapping over collection via API.
Flat ID still used by GUI - but when coming through API this is probably the better choice.
2014-05-11 13:56:49 -05:00