Commit Graph
15223 Commits
Author SHA1 Message Date
Aysam Guerler a946ebf66f Ui: Resize select fields 2014-11-13 16:38:49 -05:00
Kyle Ellrott ff7a10cf3a Adding job state info to WorkflowInvocationStep to_dict 2014-11-13 13:47:41 -05:00
Kyle Ellrott 961da930f1 Fixing id lookup on GET /api/workflows/<uuid>/usage 2014-11-13 13:47:40 -05:00
John Chilton 0ad9c05af3 Conditionally force traditional workflow invocations paths through scheduling framework.
Workflow with pause modules have to be run through the new workflow scheduling plugin framework - so these will always force jobs to be queued in the background. The deployer can also now choose to have workflows scheduled this way if a workflow has a minimum number of steps (set at a very high 250 right now) or if it uses collections (currently this defaults to False). These options are meant as transient options that will disappear once all workflows a scheduled this way - but there needs to be better UI in place before making that switch as well as more testing. These options are just meant to give people running really large workflows a way to start exploring the scheduling framework option.
2014-11-13 13:47:40 -05:00
John Chilton 352432b3ed Implement pause module for workflows.
New module type that pauses a workflow and gives time for the runner to review it before proceeding with execution.

 - Introduce concept of beta workflow modules - I guess we should just keep the pause module as beta until their is a UI to support it.
 - Extracts base class ouptut of InputModule for modules that are "simple" - i.e. their configuration state is represented as a dictionary and configuration form is rendered via the generic template.
 - Test Cases (for this changeset and a bunch of stuff that is now testable with the pause module in place from the scheduling framework commit).
2014-11-13 13:47:39 -05:00
John Chilton e1b581eb2d Update workflow invocations when their jobs complete.
This could allow more efficient checks when recovering workflow state.
2014-11-13 13:47:39 -05:00
John Chilton d1cd4ab4d2 Implement workflow scheduling 'plugin' framework.
Models:

Workflow invocations have been augmented with significantly more state - inputs, parameters, runtime step state, are all being tracked now. Workflow invocations have a state that can be changed over time, the UUIDs generated for workflow invocations in Pull Request #465 have to be persisted so they can be reused when scheduling new jobs for theworkflow invocation. Workflow invocation steps now have an action parameter for persisting state provided by users during the execution of the workflow (see forthcoming PauseModule for further details).

Some initial elements of these model changes were based on model changes in Kyle Ellrott's Galaxy farm work (https://bitbucket.org/kellrott/galaxy-farm/branch/workflow_migrate). I made heavy modifications to the model to enforce referential integrity on parameter to workflow step mappings and made some cosmetic changes various other details.

Scheduling Plugins:

Used the pattern setup with dependency resolvers and job metrics to build a dynamic plugin infrastructure for defining workflow schedulers. I hesistate calling anything with only one implementation a plugin infrastructure, but I am confident enough that the combination of persisted workflow request combined with scheduler tag could be used to build a galaxy-farm plugin that would wait for another Galaxy instance to become available and it would pull the workflow down and

This work piggy backs on Galaxy job handlers to have workflow scheduled in the background (i.e. during submission each workflow being scheduled in the background is assigned a unique job handler and only that job handler thread will process the workflow). It should be pretty easy to allow the definition of a new kind of handler - that is a workflow handler instead of a job handler if that is of interest.

I will probably move a bunch of stuff that is happening in workflow/scheduling_manager.py more into the scheduler itself so that it can be more configurable and closer to a true plugin.

API:

There are a number of new API points here for flushing out dealing with workflow invocations (called usages in existing parlance).

 - POST /api/workflows/{encoded_workflow_id}/usage

   Schedule a worklfow to be run in the background and return just the workflow invocation information.

   RESTfully speaking this should be plural but the matching GET endpoint is likewise usage and not usages - so I am favoring consistency over RESTful correctness here. Also, likewise creating a 'usage' feel like odd - I would like to make all of the usage endpoints aliases to a more RESTfully correct invocations endpoints.

   The existing workflow run API endpoints still work and still work the way they use usually - but the output now includes all of the workflow invocation to_dict stuff as well as the list of outputs it initially used. Once everything is scheduled this way - that list of outputs is going to have to disappear but hopefully people can start using the invocation stuff now to help the transition.

 - DELETE /api/workflows/{workflow_id}/usage/{usage_id}

   Cancel a scheduled workflow invocation.

 - GET /api/workflows/{workflow_id}/usage/{usage_id}/steps/{step_id}

   Get information about a workflow invocation step.

 - PUT /api/workflows/{workflow_id}/usage/{usage_id}/steps/{step_id}

   Update a workflow invocation step - for ones with modifiable state. Extension point added to workflow modules to support this but it is unused by all existing worklfow modules. A subsequent PauseModule will use this to either continue or cancel a workflow invocation at a particular step.

Modules:

Workflow modules can now define new methods for dealing with recovering state and interacting with user requests.

Testing:

One can issue a workflow request by running the following test.

./run_tests.sh -api test/api/test_workflows.py:WorkflowsApiTestCase.test_workflow_request
2014-11-13 13:47:38 -05:00
John Chilton 4a6b5a7464 Dynamically load workflow module descriptions in mako editor.
This again falls under the umbrella of making workflow modules more like true plugins. This should allow one to add new modules downstream without needing to modify templates/webapps/galaxy/workflow/editor.mako. One can imagine a new API endpoint for the new load_module_sections method will be useful as the editor UI shifts to a single page app and actual API clients need to determine what workflow modules are available. Such an API endpoint is not included but would be easy to add now.
2014-11-13 13:47:38 -05:00
Daniel Blankenberg a187edba17 Fix toolshed bootstrapping for Macs. 2014-11-13 12:43:26 -05:00
Dannon Baker c96b26aaf3 Merged in jmchilton/galaxy-central-fork-1 (pull request #558)
Make JSONType columns bigger in MySQL
2014-11-13 09:18:32 -08:00
Carl Eberhard 3f200b5801 History panel: fix dataset count off by one error 2014-11-13 11:52:21 -05:00
Carl Eberhard ed0617e438 Phyloviz: fix saving 2014-11-13 11:23:12 -05:00
Aysam Guerler ac598d54ff ToolForm: Test tool form width limits 2014-11-13 09:59:08 -05:00
Aysam Guerler a47aa0e36b ToolForm: Fix collection ids 2014-11-12 15:33:53 -05:00
Aysam Guerler d31416f043 ToolForm: Temporary modification of return dictionary for datasets 2014-11-12 15:30:35 -05:00
Carl Eberhard 70c77dd8f2 Pages: allow registry visualizations to display within an iframe; Refactor embed_item.less and minor style fixes 2014-11-12 13:45:38 -05:00
John Chilton 55dfc5c788 Database migration to grow mysql blobs.
Should address the following issues

https://trello.com/c/RbW6pOd2
https://trello.com/c/lvz4OQR1
https://trello.com/c/Hv5iIweU
2014-11-12 12:46:43 -05:00
John Chilton f26ab052d2 Make JSONType a MEDIUMBLOB instead of a BLOB under mysql.
These can have 16 MB of data instead of 65 KB - tool shed repositories have encountered problems with the 65 KB limit - though other columns might as well.
2014-11-12 12:46:43 -05:00
Aysam Guerler cbf63cf66f ToolForm: Trigger change event manually 2014-11-12 11:30:59 -05:00
Aysam Guerler 8116209048 ToolForm: Show/hide single dataset selection field 2014-11-12 03:13:37 -05:00
Aysam Guerler b9a13cdf2f ToolForm: Match and sort datasets and collections through API, add single selection as default option 2014-11-11 21:46:38 -05:00
John Chilton 62918c0ff3 Small fix for e4c9f0b. 2014-11-11 15:56:18 -05:00
John Chilton e1603d636e Rework ToolDataParameter and ToolDataCollectionParameter to_dict to filter over valid matches.
Doesn't do anything with them yet - passing this work off to Sam to populate the dictionaries in whatever manner makes most sense for UI consumption.
2014-11-11 13:41:00 -05:00
John Chilton 80c72bae04 Refactor dataset matcher stuff for use outside of field generation.
(i.e. for reuse in filtering datasets on the client side)
2014-11-11 13:41:00 -05:00
Martin Cech 709abedcb4 Merged in anton/galaxy-central-anton (pull request #539)
Initial tweaks to tool_conf.xml sample and one of the tools.
2014-11-11 12:26:45 -05:00
Aysam Guerler b7ce02f5e5 ToolForm: Fix field type output 2014-11-10 15:07:04 -05:00
John Chilton 4d7bf62f49 Merge stable. 2014-11-10 11:43:09 -05:00
Dannon Baker 56abf815d0 Merged in BjoernGruening/galaxy-central-1/obo-owl-datatype (pull request #542)
Add OWL & OBO datatype.
2014-11-10 08:14:49 -08:00
John Chilton b391883060 Merged in nsoranzo/galaxy-central (pull request #551)
Small bugs, doc and pylint fixes.
2014-11-10 11:04:02 -05:00
Carl Eberhard b60de7d63f Active history content: change style as suggested 2014-11-10 10:50:03 -05:00
John Chilton 1677e15a11 Bugfix renaming individual parts of pairs.
From Carl: "Yeah - that looks fine for stable. A better fix is probably adding the pair index directly into the DOM and getting it there - I'll add that to the 'Iteration 2' card. I'll approve now if you want to do the request."
2014-11-10 10:07:56 -05:00
Nate Coraor 5b3d1a220e Update tag latest_2014.10.06 for changeset a1dca14d5b1a 2014-11-10 09:00:34 -05:00
Dannon Baker 0a1aa5dde6 Merged in kellrott/galaxy-farm/fix-tooltip (pull request #544)
Adding fake host_url to tooltip rendering
2014-11-07 19:53:38 -05:00
Dannon Baker 302953f6ac Merged in kellrott/galaxy-farm/workflow-input-fix (pull request #552)
Fixing workflow import to correctly set the uuid
2014-11-07 19:48:15 -05:00
Kyle Ellrott acda72d429 Putting in URL to current host for tooltip host_url variable 2014-11-07 14:18:32 -08:00
Nate Coraor 5321bbf0ef Memory limit detection. This code is from default and is a partial graft. It
includes the code for detecting if a Slurm job was killed due to exceeding
memory limits but does not include resubmit functionality.
2014-11-07 15:41:27 -05:00
Aysam Guerler 113f90a91b ToolForm: Integrate and optimize state population for tools api 2014-11-07 13:24:22 -05:00
Aysam Guerler 668cdc8309 ToolForm: Fix boolean handling 2014-11-07 10:39:19 -05:00
Martin Cech 616805c62b Merged in martenson/galaxy-central-marten (pull request #554)
fix for password rese
2014-11-07 10:29:06 -05:00
Kyle Ellrott 661b11cada Removing whitespace fixes to avoid merge conflict 2014-11-06 14:18:03 -08:00
Aysam Guerler 5a1dac506d ToolForm: Refactoring, generalize conditional parameters 2014-11-06 15:11:23 -05:00
Martin Cech 70d0d2c970 fix for https://trello.com/c/pML6OsMl/249-html-escaping-error-in-toolshed-password-reset-message
also removed bug with inproper redirecting when resetting password
2014-11-06 13:44:56 -05:00
Carl Eberhard 4825b9ed5c History structure: incorporate tool data, refactor; HDA API: return create_time 2014-11-06 12:56:13 -05:00
Daniel Blankenberg d29fb778aa Merged in peterjc/galaxy-central-1/peterjc/fix-typo-nothting-sic-in-test-exception-1415290865597 (pull request #553)
Fix typo nothting [sic] in test exception
2014-11-06 11:27:20 -05:00
Peter Cock f9630ee81c Fix typo nothting [sic] in test exception 2014-11-06 16:21:45 +00:00
Aysam Guerler ad79a4dee8 ToolForm: Use classic ordering for repeat blocks 2014-11-06 09:02:29 -05:00
Kyle Ellrott 0caeade5b9 Fixing workflow import to correctly set the uuid 2014-11-05 17:39:08 -05:00
Aysam Guerler e02ae27ab2 ToolForm: Prevent redundant ajax requests 2014-11-04 15:28:58 -05:00
Nate Coraor ef48b26986 Update tag latest_2014.10.06 for changeset 9b8cb8d48a79 2014-11-04 14:00:15 -05:00
Martin Cech 51b295ac0b typo 2014-11-04 13:58:42 -05:00