scout-gear 10.7.4 → 10.7.6
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.
- checksums.yaml +4 -4
- data/.gitmodules +0 -4
- data/.vimproject +9 -14
- data/Rakefile +1 -4
- data/VERSION +1 -1
- data/lib/scout/association/index.rb +3 -3
- data/lib/scout/entity/identifiers.rb +5 -2
- data/lib/scout/entity/property.rb +1 -1
- data/lib/scout/knowledge_base/description.rb +108 -0
- data/lib/scout/knowledge_base/entity.rb +6 -1
- data/lib/scout/knowledge_base/registry.rb +43 -15
- data/lib/scout/knowledge_base.rb +3 -2
- data/lib/scout/tsv/change_id/translate.rb +9 -2
- data/lib/scout/tsv/open.rb +10 -0
- data/lib/scout/tsv/parser.rb +14 -3
- data/lib/scout/workflow/deployment/orchestrator.rb +9 -1
- data/lib/scout/workflow/deployment/queue.rb +26 -0
- data/lib/scout/workflow/entity.rb +99 -0
- data/lib/scout/workflow/export.rb +72 -0
- data/lib/scout/workflow/persist.rb +6 -0
- data/lib/scout/workflow/step/file.rb +3 -3
- data/lib/scout/workflow/step/info.rb +6 -0
- data/lib/scout/workflow/step/inputs.rb +11 -1
- data/lib/scout/workflow/step/provenance.rb +1 -2
- data/lib/scout/workflow/step/status.rb +1 -0
- data/lib/scout/workflow/step.rb +5 -3
- data/lib/scout/workflow/task/inputs.rb +2 -1
- data/lib/scout/workflow/task.rb +2 -1
- data/lib/scout/workflow.rb +11 -3
- data/lib/scout-gear.rb +5 -1
- data/scout-gear.gemspec +14 -18
- data/scout_commands/kb/config +3 -0
- data/scout_commands/kb/list +1 -0
- data/scout_commands/kb/query +2 -1
- data/scout_commands/kb/register +3 -1
- data/scout_commands/kb/show +4 -2
- data/scout_commands/workflow/cmd +116 -0
- data/scout_commands/workflow/process +82 -0
- data/scout_commands/workflow/task +15 -3
- data/test/data/person/README.md +17 -0
- data/test/scout/knowledge_base/test_description.rb +59 -0
- data/test/scout/workflow/task/test_dependencies.rb +7 -7
- data/test/scout/workflow/test_definition.rb +2 -2
- data/test/scout/workflow/test_entity.rb +58 -0
- data/test/scout/workflow/test_step.rb +1 -1
- metadata +14 -57
- data/lib/scout/offsite/exceptions.rb +0 -9
- data/lib/scout/offsite/ssh.rb +0 -175
- data/lib/scout/offsite/step.rb +0 -100
- data/lib/scout/offsite/sync.rb +0 -55
- data/lib/scout/offsite.rb +0 -3
- data/scout_commands/offsite +0 -30
- data/test/scout/offsite/test_ssh.rb +0 -15
- data/test/scout/offsite/test_step.rb +0 -32
- data/test/scout/offsite/test_sync.rb +0 -36
- data/test/scout/offsite/test_task.rb +0 -0
- data/test/scout/test_offsite.rb +0 -0
@@ -0,0 +1,116 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'scout'
|
4
|
+
|
5
|
+
$0 = "scout #{$previous_commands.any? ? $previous_commands*" " + " " : "" }#{ File.basename(__FILE__) }" if $previous_commands
|
6
|
+
|
7
|
+
options = SOPT.setup <<EOF
|
8
|
+
|
9
|
+
Run a workflow command
|
10
|
+
|
11
|
+
$ #{$0} <workflow> <command> [<subcommands>] [<options>] [<arg> ...]
|
12
|
+
|
13
|
+
-h--help Print this help
|
14
|
+
EOF
|
15
|
+
if options[:help]
|
16
|
+
if defined? scout_usage
|
17
|
+
scout_usage
|
18
|
+
else
|
19
|
+
puts SOPT.doc
|
20
|
+
end
|
21
|
+
exit 0
|
22
|
+
end
|
23
|
+
|
24
|
+
workflow = ARGV.shift
|
25
|
+
|
26
|
+
if workflow == '-h'
|
27
|
+
if defined? scout_usage
|
28
|
+
scout_usage
|
29
|
+
else
|
30
|
+
puts SOPT.doc
|
31
|
+
end
|
32
|
+
exit 0
|
33
|
+
end
|
34
|
+
|
35
|
+
raise ParameterException, "No workflow specified" if workflow.nil?
|
36
|
+
|
37
|
+
require 'scout/workflow'
|
38
|
+
|
39
|
+
wf = Workflow.require_workflow workflow
|
40
|
+
dir = $command_dir = wf.libdir.share.scout_commands.find
|
41
|
+
|
42
|
+
def prev_dir(prev)
|
43
|
+
scout_command_dir = $command_dir
|
44
|
+
|
45
|
+
prev.each do |previous_command|
|
46
|
+
scout_command_dir = scout_command_dir[previous_command]
|
47
|
+
end
|
48
|
+
|
49
|
+
scout_command_dir
|
50
|
+
end
|
51
|
+
|
52
|
+
def commands(prev)
|
53
|
+
scout_command_dir = prev_dir(prev)
|
54
|
+
|
55
|
+
command_file_dirs = scout_command_dir.find_all
|
56
|
+
command_files = command_file_dirs.collect{|d| d.glob('*') }.flatten
|
57
|
+
command_files.collect{|p| File.basename(p) }.uniq.reject{|p| p =~ /\.desc$/}.sort
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
prev = []
|
62
|
+
|
63
|
+
$previous_commands << ' cmd'
|
64
|
+
$previous_commands << ' ' << workflow
|
65
|
+
|
66
|
+
begin
|
67
|
+
while ARGV.any?
|
68
|
+
command = ARGV.shift
|
69
|
+
case
|
70
|
+
when File.directory?(dir[command].find)
|
71
|
+
prev << command
|
72
|
+
$previous_commands << command
|
73
|
+
dir = dir[command]
|
74
|
+
when File.directory?(dir[command].find)
|
75
|
+
prev << command
|
76
|
+
dir = dir[command]
|
77
|
+
when dir[command].exists?
|
78
|
+
load dir[command].find
|
79
|
+
exit 0
|
80
|
+
else
|
81
|
+
if command == 'bootstrap'
|
82
|
+
if wf.libdir["test_workflow.rb"].exists?
|
83
|
+
Log.info "No bootstrap for #{ workflow }, running test_workflow.rb instead"
|
84
|
+
CMD.cmd_log('ruby', wf.libdir["test_workflow.rb"].find)
|
85
|
+
else
|
86
|
+
Log.info "No bootstrap for #{ workflow }, running examples instead"
|
87
|
+
CMD.cmd_log("scout workflow example #{ workflow }")
|
88
|
+
exit 0
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
raise ParameterException, "Error: Command not understood: #{command}"
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
puts SOPT.doc
|
98
|
+
puts
|
99
|
+
puts Log.color :magenta, "## COMMANDS"
|
100
|
+
puts
|
101
|
+
puts Log.color :magenta, "Command:"
|
102
|
+
puts
|
103
|
+
puts " scout #{$previous_commands * " "} "
|
104
|
+
puts
|
105
|
+
puts Log.color :magenta, "Subcommands:"
|
106
|
+
puts
|
107
|
+
|
108
|
+
commands(prev).each do |command|
|
109
|
+
directory = File.directory? dir[command].find
|
110
|
+
if directory
|
111
|
+
puts " " << Log.color(:blue, command)
|
112
|
+
else
|
113
|
+
puts " " << command
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'scout'
|
4
|
+
require 'scout/workflow/deployment/queue'
|
5
|
+
require 'scout/workflow/deployment/orchestrator'
|
6
|
+
|
7
|
+
$0 = "scout #{$previous_commands.any? ? $previous_commands*" " + " " : "" }#{ File.basename(__FILE__) }" if $previous_commands
|
8
|
+
|
9
|
+
options = SOPT.setup <<EOF
|
10
|
+
|
11
|
+
Process the queue
|
12
|
+
|
13
|
+
$ #{$0} [<options>] ([<workflow>] [<task>] [<name>] | <filename>)
|
14
|
+
|
15
|
+
-h--help Print this help
|
16
|
+
-l--list List queue jobs
|
17
|
+
--continuous Process continuously
|
18
|
+
--produce_timer* Produce timer for sleeping
|
19
|
+
--produce_cpus* Cpus to use concurrently producing jobs
|
20
|
+
EOF
|
21
|
+
if options[:help]
|
22
|
+
if defined? scout_usage
|
23
|
+
scout_usage
|
24
|
+
else
|
25
|
+
puts SOPT.doc
|
26
|
+
end
|
27
|
+
exit 0
|
28
|
+
end
|
29
|
+
list, continuous = IndiferentHash.process_options options, :list, :continuous
|
30
|
+
|
31
|
+
queue_dir = Scout.var.queue
|
32
|
+
|
33
|
+
class TrayAgain < Exception; end
|
34
|
+
|
35
|
+
begin
|
36
|
+
if ARGV.empty?
|
37
|
+
files = queue_dir.glob("*/*/*")
|
38
|
+
if list
|
39
|
+
puts files * "\n"
|
40
|
+
exit
|
41
|
+
end
|
42
|
+
else
|
43
|
+
workflow, task, name = ARGV
|
44
|
+
|
45
|
+
# First deal with fixed files
|
46
|
+
if task.nil?
|
47
|
+
if Open.exists?(workflow)
|
48
|
+
Workflow.unqueue files.first
|
49
|
+
exit
|
50
|
+
|
51
|
+
else
|
52
|
+
files = queue_dir.glob("#{workflow}/*/*")
|
53
|
+
end
|
54
|
+
elsif name.nil?
|
55
|
+
files = queue_dir.glob("#{workflow}/#{task}/*")
|
56
|
+
else
|
57
|
+
files = queue_dir.glob("#{workflow}/#{task}/#{name}*")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
jobs = files.collect{|file| Workflow.queue_job(file) }
|
62
|
+
begin
|
63
|
+
options.keys.each do |key|
|
64
|
+
options[key.to_sym] = options.delete(key)
|
65
|
+
end
|
66
|
+
Workflow.produce(jobs, **options)
|
67
|
+
rescue Workflow::Orchestrator::NoWork
|
68
|
+
end
|
69
|
+
|
70
|
+
files.each do |f| Open.rm_rf f end
|
71
|
+
|
72
|
+
Workflow.job_cache.clear
|
73
|
+
|
74
|
+
if continuous
|
75
|
+
Log.debug "Continuous processing"
|
76
|
+
sleep 1
|
77
|
+
raise Workflow::Orchestrator::NoWork
|
78
|
+
end
|
79
|
+
rescue Workflow::Orchestrator::NoWork
|
80
|
+
retry
|
81
|
+
end
|
82
|
+
|
@@ -20,8 +20,9 @@ $ #{$0} [<options>] <workflow> <task>
|
|
20
20
|
--update Update jobs with newer dependencies
|
21
21
|
--deploy* Deploy mode: serial, local, or SLURM (default 'serial')
|
22
22
|
--fork Fork and return path
|
23
|
+
--load_inputs* Directory or file with inputs files to load
|
24
|
+
--save_inputs* Directory or tar.gz file path to store inputs
|
23
25
|
-jn--jobname* Name to use as job identifier
|
24
|
-
-li--load_inputs* Directory with inputs files to load
|
25
26
|
-pf--printpath Print the file path
|
26
27
|
-prov--provenance Print the step provenance
|
27
28
|
-cl--clean Clean the last step
|
@@ -40,8 +41,8 @@ task = workflow.tasks[task_name.to_sym] if task_name
|
|
40
41
|
|
41
42
|
options[:help] = true if task.nil?
|
42
43
|
|
43
|
-
help, provenance, clean, recursive_clean, clean_task, load_inputs, jobname, printpath, deploy, override_deps, do_fork = IndiferentHash.process_options options,
|
44
|
-
:help, :provenance, :clean, :recursive_clean, :clean_task, :load_inputs, :jobname, :printpath, :deploy, :override_deps, :fork,
|
44
|
+
help, provenance, clean, recursive_clean, clean_task, load_inputs, save_inputs, jobname, printpath, deploy, override_deps, do_fork = IndiferentHash.process_options options,
|
45
|
+
:help, :provenance, :clean, :recursive_clean, :clean_task, :load_inputs, :save_inputs, :jobname, :printpath, :deploy, :override_deps, :fork,
|
45
46
|
:deploy => 'serial'
|
46
47
|
|
47
48
|
if help
|
@@ -93,12 +94,23 @@ end
|
|
93
94
|
|
94
95
|
if provenance
|
95
96
|
puts Step.prov_report(job)
|
97
|
+
|
96
98
|
elsif do_fork
|
97
99
|
job.fork
|
98
100
|
puts job.path
|
99
101
|
exit 0
|
102
|
+
elsif save_inputs
|
103
|
+
puts job.save_inputs(save_inputs)
|
104
|
+
exit 0
|
100
105
|
else
|
106
|
+
|
101
107
|
case deploy
|
108
|
+
when "queue"
|
109
|
+
if ! job.done?
|
110
|
+
save_inputs = Scout.var.queue[workflow.to_s][task_name][job.clean_name].find
|
111
|
+
puts job.save_inputs(save_inputs)
|
112
|
+
exit
|
113
|
+
end
|
102
114
|
when "serial"
|
103
115
|
job.run(true)
|
104
116
|
when "local"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Databases describing people and their relationships.
|
2
|
+
|
3
|
+
# Brothers
|
4
|
+
|
5
|
+
Sibling relationships. The first of the pair is the Older
|
6
|
+
|
7
|
+
# Marriages
|
8
|
+
|
9
|
+
Marriages between people.
|
10
|
+
|
11
|
+
Date: Date when the marriage occurred
|
12
|
+
|
13
|
+
# Parents
|
14
|
+
|
15
|
+
List parents.
|
16
|
+
|
17
|
+
Type of parent: father or mother
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
require 'scout/knowledge_base'
|
5
|
+
class TestKnowledgebaseDesc < Test::Unit::TestCase
|
6
|
+
def test_brothers_registry
|
7
|
+
TmpFile.with_dir do |dir|
|
8
|
+
brothers = datafile_test(:person).brothers
|
9
|
+
kb = KnowledgeBase.new dir
|
10
|
+
kb.register :brothers, brothers, description: "Sibling relationships."
|
11
|
+
assert_equal "Sibling relationships.", kb.description(:brothers)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_brothers_README
|
16
|
+
TmpFile.with_dir do |dir|
|
17
|
+
brothers = datafile_test(:person).brothers
|
18
|
+
kb = KnowledgeBase.new dir
|
19
|
+
kb.register :brothers, brothers
|
20
|
+
kb.dir['brothers.md'].write "Sibling relationships."
|
21
|
+
assert_equal "Sibling relationships.", kb.description(:brothers)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_broters_kb_README
|
26
|
+
TmpFile.with_dir do |dir|
|
27
|
+
brothers = datafile_test(:person).brothers
|
28
|
+
kb = KnowledgeBase.new dir
|
29
|
+
kb.register :brothers, brothers
|
30
|
+
kb.dir['README.md'].write <<-EOF
|
31
|
+
Databases describing people and their relationships.
|
32
|
+
|
33
|
+
# Brothers
|
34
|
+
|
35
|
+
Sibling relationships.
|
36
|
+
EOF
|
37
|
+
assert_equal "Sibling relationships.", kb.description(:brothers)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_brothers_kb_source_README
|
42
|
+
TmpFile.with_dir do |dir|
|
43
|
+
brothers = datafile_test(:person).brothers
|
44
|
+
kb = KnowledgeBase.new dir
|
45
|
+
kb.register :brothers, brothers
|
46
|
+
assert_include kb.description(:brothers), "Sibling relationships."
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_full_description
|
51
|
+
TmpFile.with_dir do |dir|
|
52
|
+
brothers = datafile_test(:person).brothers
|
53
|
+
kb = KnowledgeBase.new dir
|
54
|
+
kb.register :brothers, brothers
|
55
|
+
assert_include kb.markdown(:brothers), "Older"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
@@ -120,7 +120,7 @@ class TestTaskDependencies < Test::Unit::TestCase
|
|
120
120
|
job = wf.job(:my_sum, :input1 => 2, :input2 => 3)
|
121
121
|
assert_equal 5, job.run
|
122
122
|
|
123
|
-
TmpFile.with_file(4) do |file|
|
123
|
+
TmpFile.with_file("4") do |file|
|
124
124
|
job = wf.job(:my_sum, :input1 => 2, :input2 => 3, "TaskInputs#step2"=> file)
|
125
125
|
assert_equal 6, job.run
|
126
126
|
assert_not_equal Task::DEFAULT_NAME, job.name
|
@@ -238,7 +238,7 @@ class TestTaskDependencies < Test::Unit::TestCase
|
|
238
238
|
input :input1, :string
|
239
239
|
task :step1 => :string do |i| i end
|
240
240
|
|
241
|
-
dep :step1, :input1 => 1 do |id,options|
|
241
|
+
dep :step1, :input1 => "1" do |id,options|
|
242
242
|
{:inputs => options}
|
243
243
|
end
|
244
244
|
task :step2 => :string do |i| step(:step1).load end
|
@@ -271,7 +271,7 @@ class TestTaskDependencies < Test::Unit::TestCase
|
|
271
271
|
input :input1, :string
|
272
272
|
task :step1 => :string do |i| i end
|
273
273
|
|
274
|
-
dep :step1, :input1 => 1 do |id,options|
|
274
|
+
dep :step1, :input1 => "1" do |id,options|
|
275
275
|
[{:inputs => options}]
|
276
276
|
end
|
277
277
|
input :input2, :string
|
@@ -289,7 +289,7 @@ class TestTaskDependencies < Test::Unit::TestCase
|
|
289
289
|
input :input1, :string
|
290
290
|
task :step1 => :string do |i| i end
|
291
291
|
|
292
|
-
dep :step1, :input1 => 1
|
292
|
+
dep :step1, :input1 => "1"
|
293
293
|
input :input2, :string
|
294
294
|
task :step2 => :string do |i| step(:step1).load end
|
295
295
|
end
|
@@ -304,9 +304,9 @@ class TestTaskDependencies < Test::Unit::TestCase
|
|
304
304
|
wf = Workflow.annonymous_workflow "TaskInputs" do
|
305
305
|
input :input1, :integer, "", 1
|
306
306
|
input :input2, :integer, "", 0
|
307
|
-
task :step1 => :string do |i1,i2| i1 + i2 end
|
307
|
+
task :step1 => :string do |i1,i2| (i1 + i2).to_s end
|
308
308
|
|
309
|
-
dep :step1, :input2 => 1
|
309
|
+
dep :step1, :input2 => "1"
|
310
310
|
task :step2 => :string do |i| step(:step1).load end
|
311
311
|
|
312
312
|
dep :step2
|
@@ -334,7 +334,7 @@ class TestTaskDependencies < Test::Unit::TestCase
|
|
334
334
|
if i1 < 0
|
335
335
|
raise ScoutException
|
336
336
|
else
|
337
|
-
i1
|
337
|
+
i1.to_s
|
338
338
|
end
|
339
339
|
end
|
340
340
|
|
@@ -64,7 +64,7 @@ class TestWorkflowDefinition < Test::Unit::TestCase
|
|
64
64
|
refute Open.exist?(dep_path)
|
65
65
|
Scout::Config::CACHE.replace old_cache
|
66
66
|
assert_include job.archived_info, dep_path
|
67
|
-
assert_equal :done, job.archived_info[dep_path][:status]
|
67
|
+
assert_equal :done, job.archived_info[dep_path][:status].to_sym
|
68
68
|
end
|
69
69
|
|
70
70
|
def test_task_alias_remove_dep_partial
|
@@ -95,7 +95,7 @@ class TestWorkflowDefinition < Test::Unit::TestCase
|
|
95
95
|
assert call_name.done?
|
96
96
|
Scout::Config::CACHE.replace old_cache
|
97
97
|
assert_include job.archived_info, call_name.path
|
98
|
-
assert_equal :done, job.archived_info[call_name.path][:status]
|
98
|
+
assert_equal :done, job.archived_info[call_name.path][:status].to_sym
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
class TestWorkflowEntity < Test::Unit::TestCase
|
5
|
+
def get_EWF
|
6
|
+
@m ||= Module.new do
|
7
|
+
extend EntityWorkflow
|
8
|
+
|
9
|
+
self.name = 'TestEWF'
|
10
|
+
|
11
|
+
property :introduction do
|
12
|
+
"Mi name is #{self}"
|
13
|
+
end
|
14
|
+
|
15
|
+
entity_task hi: :string do
|
16
|
+
"Hi. #{entity.introduction}"
|
17
|
+
end
|
18
|
+
|
19
|
+
list_task group_hi: :string do
|
20
|
+
"Here is the group: " + entity_list.hi * "; "
|
21
|
+
end
|
22
|
+
|
23
|
+
list_task bye: :array do
|
24
|
+
entity_list.collect do |e|
|
25
|
+
"Bye from #{e}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_property_job
|
32
|
+
ewf = get_EWF
|
33
|
+
|
34
|
+
e = ewf.setup("Miki")
|
35
|
+
|
36
|
+
assert_equal "Mi name is Miki", e.introduction
|
37
|
+
assert_equal "Hi. Mi name is Miki", e.hi
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_list
|
41
|
+
ewf = get_EWF
|
42
|
+
|
43
|
+
l = ewf.setup(["Miki", "Clei"])
|
44
|
+
|
45
|
+
assert_equal 2, l.hi.length
|
46
|
+
|
47
|
+
assert_include l.group_hi, "group: "
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_multiple
|
51
|
+
ewf = get_EWF
|
52
|
+
|
53
|
+
l = ewf.setup(["Miki", "Clei"])
|
54
|
+
|
55
|
+
assert_equal 2, l.bye.length
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
@@ -387,7 +387,7 @@ class TestWorkflowStep < Test::Unit::TestCase
|
|
387
387
|
step1.fork(false, sem)
|
388
388
|
step2.fork(false, sem)
|
389
389
|
sleep 1
|
390
|
-
assert((step1.status == :queue) || (step2.status == :queue))
|
390
|
+
assert((step1.status.to_sym == :queue) || (step2.status.to_sym == :queue))
|
391
391
|
step1.join
|
392
392
|
step2.join
|
393
393
|
assert_equal "done2", step2.run
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scout-gear
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.7.
|
4
|
+
version: 10.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-04-08 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: scout-essentials
|
@@ -65,34 +65,6 @@ dependencies:
|
|
65
65
|
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: '0'
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: rdoc
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '3.12'
|
75
|
-
type: :development
|
76
|
-
prerelease: false
|
77
|
-
version_requirements: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '3.12'
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: bundler
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '1.0'
|
89
|
-
type: :development
|
90
|
-
prerelease: false
|
91
|
-
version_requirements: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '1.0'
|
96
68
|
- !ruby/object:Gem::Dependency
|
97
69
|
name: juwelier
|
98
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,22 +79,8 @@ dependencies:
|
|
107
79
|
- - "~>"
|
108
80
|
- !ruby/object:Gem::Version
|
109
81
|
version: 2.1.0
|
110
|
-
|
111
|
-
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '0'
|
117
|
-
type: :development
|
118
|
-
prerelease: false
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - ">="
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '0'
|
124
|
-
description: Temporary files, logs, path, resources, persistence, workflows, TSV,
|
125
|
-
etc.
|
82
|
+
description: 'Scout gear: workflow, TSVs, persistence, entities, associations, and
|
83
|
+
knowledge_bases.'
|
126
84
|
email: mikisvaz@gmail.com
|
127
85
|
executables:
|
128
86
|
- scout
|
@@ -156,17 +114,13 @@ files:
|
|
156
114
|
- lib/scout/entity/object.rb
|
157
115
|
- lib/scout/entity/property.rb
|
158
116
|
- lib/scout/knowledge_base.rb
|
117
|
+
- lib/scout/knowledge_base/description.rb
|
159
118
|
- lib/scout/knowledge_base/enrichment.rb
|
160
119
|
- lib/scout/knowledge_base/entity.rb
|
161
120
|
- lib/scout/knowledge_base/list.rb
|
162
121
|
- lib/scout/knowledge_base/query.rb
|
163
122
|
- lib/scout/knowledge_base/registry.rb
|
164
123
|
- lib/scout/knowledge_base/traverse.rb
|
165
|
-
- lib/scout/offsite.rb
|
166
|
-
- lib/scout/offsite/exceptions.rb
|
167
|
-
- lib/scout/offsite/ssh.rb
|
168
|
-
- lib/scout/offsite/step.rb
|
169
|
-
- lib/scout/offsite/sync.rb
|
170
124
|
- lib/scout/persist/engine.rb
|
171
125
|
- lib/scout/persist/engine/fix_width_table.rb
|
172
126
|
- lib/scout/persist/engine/packed_index.rb
|
@@ -214,10 +168,14 @@ files:
|
|
214
168
|
- lib/scout/workflow/definition.rb
|
215
169
|
- lib/scout/workflow/deployment.rb
|
216
170
|
- lib/scout/workflow/deployment/orchestrator.rb
|
171
|
+
- lib/scout/workflow/deployment/queue.rb
|
217
172
|
- lib/scout/workflow/deployment/trace.rb
|
218
173
|
- lib/scout/workflow/documentation.rb
|
174
|
+
- lib/scout/workflow/entity.rb
|
219
175
|
- lib/scout/workflow/exceptions.rb
|
176
|
+
- lib/scout/workflow/export.rb
|
220
177
|
- lib/scout/workflow/path.rb
|
178
|
+
- lib/scout/workflow/persist.rb
|
221
179
|
- lib/scout/workflow/step.rb
|
222
180
|
- lib/scout/workflow/step/archive.rb
|
223
181
|
- lib/scout/workflow/step/children.rb
|
@@ -252,14 +210,15 @@ files:
|
|
252
210
|
- scout_commands/kb/show
|
253
211
|
- scout_commands/kb/traverse
|
254
212
|
- scout_commands/log
|
255
|
-
- scout_commands/offsite
|
256
213
|
- scout_commands/rbbt
|
257
214
|
- scout_commands/resource/produce
|
258
215
|
- scout_commands/template
|
259
216
|
- scout_commands/update
|
217
|
+
- scout_commands/workflow/cmd
|
260
218
|
- scout_commands/workflow/info
|
261
219
|
- scout_commands/workflow/install
|
262
220
|
- scout_commands/workflow/list
|
221
|
+
- scout_commands/workflow/process
|
263
222
|
- scout_commands/workflow/prov
|
264
223
|
- scout_commands/workflow/task
|
265
224
|
- scout_commands/workflow/trace
|
@@ -269,6 +228,7 @@ files:
|
|
269
228
|
- share/software/install_helpers
|
270
229
|
- share/templates/command
|
271
230
|
- share/templates/workflow.rb
|
231
|
+
- test/data/person/README.md
|
272
232
|
- test/data/person/brothers
|
273
233
|
- test/data/person/identifiers
|
274
234
|
- test/data/person/marriages
|
@@ -281,16 +241,13 @@ files:
|
|
281
241
|
- test/scout/entity/test_named_array.rb
|
282
242
|
- test/scout/entity/test_object.rb
|
283
243
|
- test/scout/entity/test_property.rb
|
244
|
+
- test/scout/knowledge_base/test_description.rb
|
284
245
|
- test/scout/knowledge_base/test_enrichment.rb
|
285
246
|
- test/scout/knowledge_base/test_entity.rb
|
286
247
|
- test/scout/knowledge_base/test_list.rb
|
287
248
|
- test/scout/knowledge_base/test_query.rb
|
288
249
|
- test/scout/knowledge_base/test_registry.rb
|
289
250
|
- test/scout/knowledge_base/test_traverse.rb
|
290
|
-
- test/scout/offsite/test_ssh.rb
|
291
|
-
- test/scout/offsite/test_step.rb
|
292
|
-
- test/scout/offsite/test_sync.rb
|
293
|
-
- test/scout/offsite/test_task.rb
|
294
251
|
- test/scout/persist/engine/test_fix_width_table.rb
|
295
252
|
- test/scout/persist/engine/test_packed_index.rb
|
296
253
|
- test/scout/persist/engine/test_sharder.rb
|
@@ -308,7 +265,6 @@ files:
|
|
308
265
|
- test/scout/test_association.rb
|
309
266
|
- test/scout/test_entity.rb
|
310
267
|
- test/scout/test_knowledge_base.rb
|
311
|
-
- test/scout/test_offsite.rb
|
312
268
|
- test/scout/test_semaphore.rb
|
313
269
|
- test/scout/test_tsv.rb
|
314
270
|
- test/scout/test_work_queue.rb
|
@@ -351,6 +307,7 @@ files:
|
|
351
307
|
- test/scout/workflow/task/test_inputs.rb
|
352
308
|
- test/scout/workflow/test_definition.rb
|
353
309
|
- test/scout/workflow/test_documentation.rb
|
310
|
+
- test/scout/workflow/test_entity.rb
|
354
311
|
- test/scout/workflow/test_path.rb
|
355
312
|
- test/scout/workflow/test_step.rb
|
356
313
|
- test/scout/workflow/test_task.rb
|