task-orchestrator 0.0.15 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/examples/loops +11 -0
- data/lib/orchestrator/task.rb +21 -3
- data/lib/orchestrator/version.rb +1 -1
- metadata +3 -2
data/examples/loops
ADDED
data/lib/orchestrator/task.rb
CHANGED
@@ -135,6 +135,9 @@ module Orchestrator
|
|
135
135
|
invalid("interpolation type is not valid in this context - :::#{match}:::") if match !~ pattern and match =~ /^(ENV|ARG|EXEC)\./
|
136
136
|
|
137
137
|
case match
|
138
|
+
when /^LOOP$/
|
139
|
+
invalid("command interpolation failed not loop type step") unless @loop_param
|
140
|
+
@loop_param
|
138
141
|
when /^ENV\./
|
139
142
|
env = match["ENV.".length..-1]
|
140
143
|
invalid("command interpolation failed no such env variable - #{env}") if !ENV[env] and !@defaults[:envs].instance_variable_defined?("@#{env}")
|
@@ -212,10 +215,25 @@ module Orchestrator
|
|
212
215
|
invalid("task step has no type") unless step.has_key?('type') && step['type'].is_a?(String)
|
213
216
|
invalid("task step type #{step['type']} is invalid") unless [:parallel,:sequential].find_index(step['type'].to_sym)
|
214
217
|
invalid("task step scripts is missing or invalid") unless step.has_key?('scripts') && step['scripts'].is_a?(Array)
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
+
if step.has_key?('loop')
|
219
|
+
invalid("task step loop is not array") unless step['loop'].is_a?(Array)
|
220
|
+
scripts = []
|
221
|
+
step['loop'].each do |item|
|
222
|
+
@loop_param = item
|
223
|
+
step['scripts'].each_index do |index|
|
224
|
+
script = Marshal.load(Marshal.dump(step['scripts'][index]))
|
225
|
+
scripts << validate_command(script, 'task step looped script')
|
226
|
+
end
|
227
|
+
@loop_param = nil
|
228
|
+
end
|
229
|
+
step['scripts'] = scripts
|
230
|
+
step.delete('loop')
|
231
|
+
else
|
232
|
+
step['scripts'].each_index do |index|
|
233
|
+
step['scripts'][index] = validate_command(step['scripts'][index], 'task step script')
|
234
|
+
end
|
218
235
|
end
|
236
|
+
step['failure_handler'] = validate_command(step['failure_handler'], 'task failure handler') if step.has_key?('failure_handler')
|
219
237
|
end
|
220
238
|
end
|
221
239
|
|
data/lib/orchestrator/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: task-orchestrator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pony
|
@@ -94,6 +94,7 @@ files:
|
|
94
94
|
- examples/dependencies
|
95
95
|
- examples/sequential
|
96
96
|
- examples/failure_handler
|
97
|
+
- examples/loops
|
97
98
|
- examples/parallel
|
98
99
|
- examples/flock
|
99
100
|
- examples/multistep
|