taverna-player 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +8 -0
  3. data/CHANGES.rdoc +47 -0
  4. data/README.rdoc +43 -3
  5. data/Rakefile +1 -4
  6. data/app/assets/stylesheets/taverna_player/coderay.css +30 -20
  7. data/app/controllers/taverna_player/application_controller.rb +2 -2
  8. data/app/controllers/taverna_player/job_queue_controller.rb +18 -0
  9. data/app/models/taverna_player/run.rb +10 -3
  10. data/app/views/taverna_player/job_queue/index.html.erb +47 -0
  11. data/app/views/taverna_player/runs/_interaction.html.erb +7 -1
  12. data/app/views/taverna_player/runs/embedded/new.html.erb +1 -1
  13. data/config/locales/en.yml +36 -0
  14. data/config/routes.rb +4 -1
  15. data/db/migrate/20140226135723_change_taverna_player_runs_status_message_to_use_keys.rb +19 -0
  16. data/lib/generators/taverna_player/install_generator.rb +6 -1
  17. data/lib/generators/templates/ReadMe.txt +6 -0
  18. data/lib/generators/templates/controllers/job_queue_controller.rb +19 -0
  19. data/lib/generators/templates/player_initializer.rb +8 -0
  20. data/lib/tasks/delete-cancelled-runs.rake +1 -1
  21. data/lib/taverna-player.rb +9 -1
  22. data/lib/taverna_player/concerns/controllers/job_queue_controller.rb +38 -0
  23. data/lib/taverna_player/concerns/controllers/runs_controller.rb +2 -13
  24. data/lib/taverna_player/concerns/models/run.rb +22 -9
  25. data/lib/taverna_player/concerns/models/run_port.rb +5 -0
  26. data/lib/taverna_player/port_renderer.rb +1 -1
  27. data/lib/taverna_player/version.rb +1 -1
  28. data/lib/taverna_player/worker.rb +78 -51
  29. data/taverna_player.gemspec +7 -5
  30. data/test/dummy/app/views/home/index.html.erb +1 -1
  31. data/test/dummy/app/views/layouts/application.html.erb +2 -1
  32. data/test/dummy/config/application.rb +1 -0
  33. data/test/dummy/config/initializers/taverna_player.rb +8 -3
  34. data/test/dummy/config/locales/taverna_player.en.yml +36 -0
  35. data/test/dummy/db/migrate/20140226143013_change_taverna_player_runs_status_message_to_use_keys.taverna_player.rb +20 -0
  36. data/test/dummy/db/schema.rb +9 -9
  37. data/test/dummy/lib/callbacks.rb +1 -5
  38. data/test/fixtures/files/non-ascii.csv +30 -0
  39. data/test/fixtures/taverna_player/interactions.yml +4 -1
  40. data/test/fixtures/taverna_player/runs.yml +6 -1
  41. data/test/functional/taverna_player/job_queue_controller_test.rb +35 -0
  42. data/test/functional/taverna_player/runs_controller_test.rb +20 -0
  43. data/test/functional/taverna_player/service_credentials_controller_test.rb +3 -3
  44. data/test/test_helper.rb +4 -1
  45. data/test/unit/helpers/taverna_player/runs_helper_test.rb +20 -1
  46. data/test/unit/taverna_player/run_port_test.rb +41 -5
  47. data/test/unit/{utils_test.rb → taverna_player/utils_test.rb} +0 -0
  48. data/test/unit/taverna_player/worker_test.rb +201 -0
  49. metadata +67 -18
  50. data/test/fixtures/files/crassostrea_gigas.csv +0 -737
data/.gitignore CHANGED
@@ -11,6 +11,7 @@ test/dummy/config/initializers/taverna_server.rb
11
11
 
12
12
  *~
13
13
  rdoc/
14
+ coverage/
14
15
  .buildpath
15
16
  .project
16
17
  .settings
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
6
+ script:
7
+ - RAILS_ENV=test bundle exec rake db:schema:load
8
+ - bundle exec rake test
@@ -1,5 +1,52 @@
1
1
  = Changes log for Taverna Player
2
2
 
3
+ == Version 0.6.0
4
+
5
+ * [TAV-485] Set up separate worker integration test.
6
+ * [TAV-469] Fix notification interactions.
7
+ * Delete cancelled runs rake task not working.
8
+ * [TAV-495] Stop interactions from changing the document title.
9
+ * [TAV-493] Namespace preset values for embedded runs.
10
+ * Setup Travis-CI.
11
+ * Add a travis badge to the readme.
12
+ * Add Coveralls integration to the tests.
13
+ * Allow configuration of the delayed_job queue name.
14
+ * Update tests to properly test all callback code.
15
+ * Add documentation for the job_queue_name option.
16
+ * [TAV-496] Allow workflow file to be passed in to worker.
17
+ * Guard against missing input presets in embedded view.
18
+ * Add a job queue listing page.
19
+ * Move admin type resources into their own namespace.
20
+ * [TAV-485] Better tests for the worker code.
21
+ * [TAV-485] Ensure run is backed-off before starting.
22
+ * [TAV-485] Ensure run is backed-off before creation.
23
+ * [TAV-485] Test a failing run.
24
+ * [TAV-485] Test a cancelled run.
25
+ * Add a coveralls badge to the readme.
26
+ * Factor out the worker failure handler.
27
+ * Add a worker test for failure within the failure callback.
28
+ * Add a worker test for failure within the cancelled callback.
29
+ * Assert that there is a run failure message on failure.
30
+ * Add a worker test for failure within the pre_run callback.
31
+ * Add a worker test for failure within the post_run callback.
32
+ * [TAV-457] Add I18n file for run status messages.
33
+ * [TAV-457] Install the locale file in the install generator.
34
+ * Don't save translated run status message in the database.
35
+ * Use the locale file for validation error message.
36
+ * [TAV-499] Clean up timed out runs properly.
37
+ * Update missed translation keys in the installed locale file.
38
+ * Update the coderay dependency.
39
+ * Update the delayed_job dependency.
40
+ * Update Paperclip dependency.
41
+ * Update the JBuilder dependency.
42
+ * Allow use of latest jquery-rails gem.
43
+ * Factor out running callbacks in the worker.
44
+ * Simplified method of choosing which layout to use
45
+ * Force input data to be treated as binary initially.
46
+ * Add tests for small non-ascii/utf-8 values.
47
+ * Make the controller dependency chain more explicit.
48
+ * Added test to see if input RunPorts are created along with the run
49
+
3
50
  == Version 0.5.0
4
51
 
5
52
  * [TAV-480] Refactor output port downloading.
@@ -8,6 +8,8 @@ Copyright:: (c) 2013, 2014 The University of Manchester, UK
8
8
 
9
9
  {<img src="https://badge.fury.io/rb/taverna-player.png" alt="Gem Version" />}[http://badge.fury.io/rb/taverna-player]
10
10
  {<img src="https://codeclimate.com/github/myGrid/taverna-player.png" />}[https://codeclimate.com/github/myGrid/taverna-player]
11
+ {<img src="https://travis-ci.org/myGrid/taverna-player.png?branch=master" alt="Build Status" />}[https://travis-ci.org/myGrid/taverna-player]
12
+ {<img src="https://coveralls.io/repos/myGrid/taverna-player/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/myGrid/taverna-player?branch=master]
11
13
 
12
14
  == Synopsis
13
15
 
@@ -41,9 +43,10 @@ Next you need to run the install generator:
41
43
  This installs two initializer files (into your application's
42
44
  <tt>config/initializers</tt> directory) which describe all of Taverna Player's
43
45
  configuration options; there are some things that MUST be configured before it
44
- will work - see below for more information. The install generator also prints
45
- out a list of other steps for setting up Taverna Player; these are repeated
46
- and detailed below.
46
+ will work - see below for more information. The install generator also creates
47
+ a locale file at <tt>config/locales/taverna_player.en.yml</tt> and prints out
48
+ a list of other steps for setting up Taverna Player; these are repeated and
49
+ detailed below.
47
50
 
48
51
  == Running Taverna Player
49
52
 
@@ -79,6 +82,10 @@ would start your workers like this:
79
82
 
80
83
  RAILS_ENV=production bundle exec ./script/delayed_job -n 20 --queue=player start
81
84
 
85
+ By default Taverna Player puts its jobs into the "player" queue which is why
86
+ this is specified above. If you change this configuration (see below) you will
87
+ need to specify a different queue in the command above.
88
+
82
89
  See the documentation for {delayed_job}[https://rubygems.org/gems/delayed_job]
83
90
  for more options and information.
84
91
 
@@ -88,6 +95,29 @@ Mount the Taverna Player engine in your <tt>config/routes.rb</tt>. For example:
88
95
 
89
96
  mount TavernaPlayer::Engine, :at => "/"
90
97
 
98
+ Taverna Player provides three resources with paths:
99
+
100
+ * <tt>/runs/*</tt>
101
+ * <tt>/service_credentials/*</tt>
102
+ * <tt>/job_queue</tt>
103
+
104
+ Runs are what you will interact with most as this is the model that represents
105
+ a workflow execution.
106
+
107
+ Service credentials and the job queue are administrator resources. If you have
108
+ users you may like to restrict access to these resources (see the section on
109
+ overriding controllers, below). These two resources can be moved to a
110
+ different namespace if you like. In the Taverna Player initializer you can
111
+ set (for example):
112
+
113
+ config.admin_scope = "admin"
114
+
115
+ And the resource paths would become:
116
+
117
+ * <tt>/runs/*</tt>
118
+ * <tt>/admin/service_credentials/*</tt>
119
+ * <tt>/admin/job_queue</tt>
120
+
91
121
  You can also nest the Taverna Player runs resources within your workflows
92
122
  resources if you wish, like this:
93
123
 
@@ -317,6 +347,15 @@ want it to store its files:
317
347
  Use ":rails_root" for the root of your application, or specify a full path for
318
348
  anywhere else.
319
349
 
350
+ ==== Jobs
351
+
352
+ Taverna Player uses the "player" queue for its delayed jobs. You can change
353
+ this with:
354
+
355
+ config.job_queue_name = "my_queue"
356
+
357
+ Remember to start workers listening to the correct queue if you change it.
358
+
320
359
  ==== Run callbacks and renderers
321
360
 
322
361
  These are described in their own sections, below.
@@ -344,6 +383,7 @@ You can override the following core components:
344
383
  * RunPort::Output (model)
345
384
  * RunsController
346
385
  * ServiceCredentialsController
386
+ * JobQueueController
347
387
 
348
388
  Use the generators, detailed above, to create stubs for you to expand. These
349
389
  components have been designed for overriding with the decorator pattern using
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env rake
2
2
  #------------------------------------------------------------------------------
3
- # Copyright (c) 2013 The University of Manchester, UK.
3
+ # Copyright (c) 2013, 2014 The University of Manchester, UK.
4
4
  #
5
5
  # BSD Licenced. See LICENCE.rdoc for details.
6
6
  #
@@ -49,8 +49,6 @@ end
49
49
  APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
50
50
  load 'rails/tasks/engine.rake'
51
51
 
52
-
53
-
54
52
  Bundler::GemHelper.install_tasks
55
53
 
56
54
  require 'rake/testtask'
@@ -62,5 +60,4 @@ Rake::TestTask.new(:test) do |t|
62
60
  t.verbose = false
63
61
  end
64
62
 
65
-
66
63
  task :default => :test
@@ -13,7 +13,7 @@ table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
13
13
  table.CodeRay td { padding: 2px 4px; vertical-align: top; }
14
14
 
15
15
  .CodeRay .line-numbers {
16
- background-color: hsl(100,65%,90%);
16
+ background-color: hsl(180,65%,90%);
17
17
  color: gray;
18
18
  text-align: right;
19
19
  -webkit-user-select: none;
@@ -21,10 +21,13 @@ table.CodeRay td { padding: 2px 4px; vertical-align: top; }
21
21
  user-select: none;
22
22
  }
23
23
  .CodeRay .line-numbers a {
24
- background-color: hsl(100,65%,90%) !important;
24
+ background-color: hsl(180,65%,90%) !important;
25
25
  color: gray !important;
26
26
  text-decoration: none !important;
27
27
  }
28
+ .CodeRay .line-numbers pre {
29
+ word-break: normal;
30
+ }
28
31
  .CodeRay .line-numbers a:target { color: blue !important; }
29
32
  .CodeRay .line-numbers .highlighted { color: red !important; }
30
33
  .CodeRay .line-numbers .highlighted a { color: red !important; }
@@ -37,77 +40,84 @@ table.CodeRay td { padding: 2px 4px; vertical-align: top; }
37
40
  .CodeRay .annotation { color:#007 }
38
41
  .CodeRay .attribute-name { color:#b48 }
39
42
  .CodeRay .attribute-value { color:#700 }
40
- .CodeRay .binary { color:#509 }
43
+ .CodeRay .binary { color:#549 }
44
+ .CodeRay .binary .char { color:#325 }
45
+ .CodeRay .binary .delimiter { color:#325 }
46
+ .CodeRay .char { color:#D20 }
41
47
  .CodeRay .char .content { color:#D20 }
42
48
  .CodeRay .char .delimiter { color:#710 }
43
- .CodeRay .char { color:#D20 }
44
49
  .CodeRay .class { color:#B06; font-weight:bold }
45
50
  .CodeRay .class-variable { color:#369 }
46
51
  .CodeRay .color { color:#0A0 }
47
52
  .CodeRay .comment { color:#777 }
48
53
  .CodeRay .comment .char { color:#444 }
49
54
  .CodeRay .comment .delimiter { color:#444 }
50
- .CodeRay .complex { color:#A08 }
51
55
  .CodeRay .constant { color:#036; font-weight:bold }
52
56
  .CodeRay .decorator { color:#B0B }
53
57
  .CodeRay .definition { color:#099; font-weight:bold }
54
58
  .CodeRay .delimiter { color:black }
55
59
  .CodeRay .directive { color:#088; font-weight:bold }
56
- .CodeRay .doc { color:#970 }
57
- .CodeRay .doc-string { color:#D42; font-weight:bold }
60
+ .CodeRay .docstring { color:#D42; }
58
61
  .CodeRay .doctype { color:#34b }
62
+ .CodeRay .done { text-decoration: line-through; color: gray }
59
63
  .CodeRay .entity { color:#800; font-weight:bold }
60
64
  .CodeRay .error { color:#F00; background-color:#FAA }
61
65
  .CodeRay .escape { color:#666 }
62
66
  .CodeRay .exception { color:#C00; font-weight:bold }
63
67
  .CodeRay .float { color:#60E }
64
68
  .CodeRay .function { color:#06B; font-weight:bold }
69
+ .CodeRay .function .delimiter { color:#024; font-weight:bold }
65
70
  .CodeRay .global-variable { color:#d70 }
66
71
  .CodeRay .hex { color:#02b }
67
- .CodeRay .imaginary { color:#f00 }
72
+ .CodeRay .id { color:#33D; font-weight:bold }
68
73
  .CodeRay .include { color:#B44; font-weight:bold }
69
74
  .CodeRay .inline { background-color: hsla(0,0%,0%,0.07); color: black }
70
75
  .CodeRay .inline-delimiter { font-weight: bold; color: #666 }
71
76
  .CodeRay .instance-variable { color:#33B }
72
77
  .CodeRay .integer { color:#00D }
78
+ .CodeRay .imaginary { color:#f00 }
79
+ .CodeRay .important { color:#D00 }
80
+ .CodeRay .key { color: #606 }
73
81
  .CodeRay .key .char { color: #60f }
74
82
  .CodeRay .key .delimiter { color: #404 }
75
- .CodeRay .key { color: #606 }
76
83
  .CodeRay .keyword { color:#080; font-weight:bold }
77
84
  .CodeRay .label { color:#970; font-weight:bold }
78
- .CodeRay .local-variable { color:#963 }
85
+ .CodeRay .local-variable { color:#950 }
86
+ .CodeRay .map .content { color:#808 }
87
+ .CodeRay .map .delimiter { color:#40A}
88
+ .CodeRay .map { background-color:hsla(200,100%,50%,0.06); }
79
89
  .CodeRay .namespace { color:#707; font-weight:bold }
80
90
  .CodeRay .octal { color:#40E }
81
91
  .CodeRay .operator { }
82
92
  .CodeRay .predefined { color:#369; font-weight:bold }
83
93
  .CodeRay .predefined-constant { color:#069 }
84
- .CodeRay .predefined-type { color:#0a5; font-weight:bold }
94
+ .CodeRay .predefined-type { color:#0a8; font-weight:bold }
85
95
  .CodeRay .preprocessor { color:#579 }
86
96
  .CodeRay .pseudo-class { color:#00C; font-weight:bold }
97
+ .CodeRay .regexp { background-color:hsla(300,100%,50%,0.06); }
87
98
  .CodeRay .regexp .content { color:#808 }
88
99
  .CodeRay .regexp .delimiter { color:#404 }
89
100
  .CodeRay .regexp .modifier { color:#C2C }
90
- .CodeRay .regexp { background-color:hsla(300,100%,50%,0.06); }
91
101
  .CodeRay .reserved { color:#080; font-weight:bold }
102
+ .CodeRay .shell { background-color:hsla(120,100%,50%,0.06); }
92
103
  .CodeRay .shell .content { color:#2B2 }
93
104
  .CodeRay .shell .delimiter { color:#161 }
94
- .CodeRay .shell { background-color:hsla(120,100%,50%,0.06); }
105
+ .CodeRay .string { background-color:hsla(0,100%,50%,0.05); }
95
106
  .CodeRay .string .char { color: #b0b }
96
107
  .CodeRay .string .content { color: #D20 }
97
108
  .CodeRay .string .delimiter { color: #710 }
98
109
  .CodeRay .string .modifier { color: #E40 }
99
- .CodeRay .string { background-color:hsla(0,100%,50%,0.05); }
100
- .CodeRay .symbol .content { color:#A60 }
101
- .CodeRay .symbol .delimiter { color:#630 }
102
110
  .CodeRay .symbol { color:#A60 }
103
- .CodeRay .tag { color:#070 }
111
+ .CodeRay .symbol .content { color:#A60 }
112
+ .CodeRay .symbol .delimiter { color:#740 }
113
+ .CodeRay .tag { color:#070; font-weight:bold }
104
114
  .CodeRay .type { color:#339; font-weight:bold }
105
- .CodeRay .value { color: #088; }
106
- .CodeRay .variable { color:#037 }
115
+ .CodeRay .value { color: #088 }
116
+ .CodeRay .variable { color:#037 }
107
117
 
108
118
  .CodeRay .insert { background: hsla(120,100%,50%,0.12) }
109
119
  .CodeRay .delete { background: hsla(0,100%,50%,0.12) }
110
- .CodeRay .change { color: #bbf; background: #007; }
120
+ .CodeRay .change { color: #bbf; background: #007 }
111
121
  .CodeRay .head { color: #f8f; background: #505 }
112
122
  .CodeRay .head .filename { color: white; }
113
123
 
@@ -1,5 +1,5 @@
1
1
  #------------------------------------------------------------------------------
2
- # Copyright (c) 2013 The University of Manchester, UK.
2
+ # Copyright (c) 2013, 2014 The University of Manchester, UK.
3
3
  #
4
4
  # BSD Licenced. See LICENCE.rdoc for details.
5
5
  #
@@ -11,6 +11,6 @@
11
11
  #------------------------------------------------------------------------------
12
12
 
13
13
  module TavernaPlayer
14
- class ApplicationController < ApplicationController
14
+ class ApplicationController < ::ApplicationController
15
15
  end
16
16
  end
@@ -0,0 +1,18 @@
1
+ #------------------------------------------------------------------------------
2
+ # Copyright (c) 2014 The University of Manchester, UK.
3
+ #
4
+ # BSD Licenced. See LICENCE.rdoc for details.
5
+ #
6
+ # Taverna Player was developed in the BioVeL project, funded by the European
7
+ # Commission 7th Framework Programme (FP7), through grant agreement
8
+ # number 283359.
9
+ #
10
+ # Author: Robert Haines
11
+ #------------------------------------------------------------------------------
12
+
13
+ module TavernaPlayer
14
+ class JobQueueController < TavernaPlayer::ApplicationController
15
+ # See lib/taverna_player/concerns/controllers/job_queue_controller.rb
16
+ include TavernaPlayer::Concerns::Controllers::JobQueueController
17
+ end
18
+ end
@@ -36,8 +36,8 @@ module TavernaPlayer
36
36
  # :call-seq:
37
37
  # complete? -> boolean
38
38
  #
39
- # Is this run complete? If a run is finished or cancelled or failed then
40
- # it is complete.
39
+ # Is this run complete? If a run is finished or cancelled or failed or
40
+ # has timed out then it is complete.
41
41
 
42
42
  ##
43
43
  # :method: embedded?
@@ -111,7 +111,14 @@ module TavernaPlayer
111
111
  # state -> symbol
112
112
  #
113
113
  # The state of this run. Possible states are :pending, :initialized,
114
- # :running, :finished, :cancelled or :failed.
114
+ # :running, :finished, :cancelled, :timeout or :failed.
115
+
116
+ ##
117
+ # :method: timeout?
118
+ # :call-seq:
119
+ # timeout? -> boolean
120
+ #
121
+ # Did this run timeout?
115
122
 
116
123
  end
117
124
  end
@@ -0,0 +1,47 @@
1
+ <%
2
+ # Copyright (c) 2014 The University of Manchester, UK.
3
+ #
4
+ # BSD Licenced. See LICENCE.rdoc for details.
5
+ #
6
+ # Taverna Player was developed in the BioVeL project, funded by the European
7
+ # Commission 7th Framework Programme (FP7), through grant agreement
8
+ # number 283359.
9
+ #
10
+ # Author: Robert Haines
11
+ %>
12
+
13
+ <h1>Taverna Player Jobs</h1>
14
+
15
+ Number of jobs in the queue: <%= @jobs.count %>
16
+
17
+ <table>
18
+ <tr>
19
+ <th>Job ID</th>
20
+ <th>Priority</th>
21
+ <th>Run at</th>
22
+ <th>Locked at</th>
23
+ <th>Failed at</th>
24
+ <th>Run ID</th>
25
+ <th>Workflow ID</th>
26
+ <th>Run state</th>
27
+ <th>Status message</th>
28
+ </tr>
29
+
30
+ <% @jobs.each do |job| %>
31
+ <%
32
+ worker = job.payload_object
33
+ run = worker.run
34
+ %>
35
+ <tr>
36
+ <td><%= job.id %></td>
37
+ <td><%= job.priority %></td>
38
+ <td><%= job.run_at %></td>
39
+ <td><%= job.locked_at %></td>
40
+ <td><%= job.failed_at %></td>
41
+ <td><%= run.id %></td>
42
+ <td><%= run.workflow.id %></td>
43
+ <td><%= run.state %></td>
44
+ <td><%= run.status_message %></td>
45
+ </tr>
46
+ <% end %>
47
+ </table>
@@ -49,7 +49,13 @@
49
49
  pmrpc.register( {
50
50
  publicProcedureName : "setTitle",
51
51
  procedure : function(title) {
52
- document.title = title;
52
+ // This method is called by an interaction to set its title.
53
+ // It must be registered but doesn't need to do anything if you
54
+ // don't want it to.
55
+
56
+ //document.title = title;
57
+
58
+ // This method must return "OK".
53
59
  return "OK";
54
60
  }
55
61
  });
@@ -21,7 +21,7 @@
21
21
  <%= f.hidden_field :name, :value => "#{workflow_title} (embedded)" %>
22
22
 
23
23
  <% workflow_inputs.each do |input| %>
24
- <% input_param = params[input[:name].to_sym] %>
24
+ <% input_param = params[:input][input[:name].to_sym] if params[:input] %>
25
25
  <% if input_param.nil? %>
26
26
  <div>Input: <%= input[:name] %></div>
27
27
 
@@ -0,0 +1,36 @@
1
+ #------------------------------------------------------------------------------
2
+ # Copyright (c) 2014 The University of Manchester, UK.
3
+ #
4
+ # BSD Licenced. See LICENCE.rdoc for details.
5
+ #
6
+ # Taverna Player was developed in the BioVeL project, funded by the European
7
+ # Commission 7th Framework Programme (FP7), through grant agreement
8
+ # number 283359.
9
+ #
10
+ # Author: Robert Haines
11
+ #------------------------------------------------------------------------------
12
+
13
+ en:
14
+ taverna_player:
15
+ status:
16
+ pending: "Queued"
17
+ pre-callback: "Running pre-run tasks"
18
+ connect: "Connecting to Taverna Server"
19
+ full: "Server full - please wait; run will start soon"
20
+ initialized: "Initializing new workflow run"
21
+ inputs: "Uploading run inputs"
22
+ start: "Starting run"
23
+ busy: "Server busy - please wait; run will start soon"
24
+ running: "Running"
25
+ interact: "Waiting for user input"
26
+ outputs: "Gathering run outputs and log"
27
+ post-callback: "Running post-run tasks"
28
+ finished: "Finished"
29
+ cancel: "Cancelling"
30
+ cancel-callback: "Running post-cancel tasks"
31
+ cancelled: "Cancelled"
32
+ timeout: "Run execution timed out"
33
+ fail-callback: "Running post-failure tasks"
34
+ failed: "Failed"
35
+ errors:
36
+ invalid-parent: "Parents must have lower ids than their children"