tengine_job 0.6.13 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/Gemfile +1 -20
  2. data/Gemfile.lock +70 -72
  3. data/README.rdoc +2 -2
  4. data/bin/create_indexes_for_tengine_job +18 -0
  5. data/lib/tengine/job/connectable.rb +4 -4
  6. data/lib/tengine/job/drivers/job_execution_driver.rb +2 -2
  7. data/lib/tengine/job/drivers/jobnet_control_driver.rb +3 -3
  8. data/lib/tengine/job/drivers/schedule_driver.rb +12 -12
  9. data/lib/tengine/job/edge.rb +2 -2
  10. data/lib/tengine/job/expansion.rb +1 -1
  11. data/lib/tengine/job/jobnet.rb +12 -2
  12. data/lib/tengine/job/jobnet_actual.rb +29 -0
  13. data/lib/tengine/job/root_jobnet_actual.rb +20 -1
  14. data/lib/tengine/job/root_jobnet_template.rb +4 -4
  15. data/lib/tengine/job/signal.rb +1 -1
  16. data/lib/tengine/job/vertex.rb +10 -1
  17. metadata +130 -126
  18. data/.document +0 -5
  19. data/.rspec +0 -1
  20. data/Rakefile +0 -42
  21. data/VERSION +0 -1
  22. data/spec/fixtures/rjn_0001_simple_jobnet_builder.rb +0 -42
  23. data/spec/fixtures/rjn_0002_simple_parallel_jobnet_builder.rb +0 -42
  24. data/spec/fixtures/rjn_0003_fork_join_jobnet_builder.rb +0 -61
  25. data/spec/fixtures/rjn_0004_parallel_jobnet_with_finally_fixture.rb +0 -62
  26. data/spec/fixtures/rjn_0005_retry_two_layer_fixture.rb +0 -153
  27. data/spec/fixtures/rjn_0008_expansion_fixture.rb +0 -32
  28. data/spec/fixtures/rjn_0009_tree_sequential_jobnet_builder.rb +0 -174
  29. data/spec/fixtures/rjn_0010_2jobs_and_1job_parallel_jobnet_builder.rb +0 -39
  30. data/spec/fixtures/rjn_0011_nested_fork_jobnet_builder.rb +0 -96
  31. data/spec/fixtures/rjn_0012_nested_and_finally_builder.rb +0 -157
  32. data/spec/fixtures/rjn_1004_hadoop_job_in_jobnet_fixture.rb +0 -105
  33. data/spec/fixtures/rjn_means_root_jobnet +0 -0
  34. data/spec/fixtures/test_credential_fixture.rb +0 -12
  35. data/spec/fixtures/test_server_fixture.rb +0 -28
  36. data/spec/mongoid.yml +0 -35
  37. data/spec/spec_helper.rb +0 -58
  38. data/spec/sshd/.gitignore +0 -1
  39. data/spec/sshd/id_rsa +0 -51
  40. data/spec/sshd/id_rsa.pub +0 -1
  41. data/spec/sshd/ssh_host_rsa_key +0 -51
  42. data/spec/sshd/ssh_host_rsa_key.pub +0 -1
  43. data/spec/sshd/sshd_config +0 -10
  44. data/spec/sshd/sshd_config.erb +0 -11
  45. data/spec/sshd/tengine_job_test.sh +0 -6
  46. data/spec/support/jobnet_fixture_builder.rb +0 -145
  47. data/spec/support/mongo_index_key_log.rb +0 -91
  48. data/spec/tengine/job/category_spec.rb +0 -193
  49. data/spec/tengine/job/connectable_spec.rb +0 -94
  50. data/spec/tengine/job/drivers/job_controll_driver/connection_error_spec.rb +0 -236
  51. data/spec/tengine/job/drivers/job_controll_driver/duplicated_job_start_spec.rb +0 -302
  52. data/spec/tengine/job/drivers/job_controll_driver/expansion_spec.rb +0 -120
  53. data/spec/tengine/job/drivers/job_controll_driver/stop_spec.rb +0 -159
  54. data/spec/tengine/job/drivers/job_controll_driver_spec.rb +0 -740
  55. data/spec/tengine/job/drivers/job_execution_driver_spec.rb +0 -138
  56. data/spec/tengine/job/drivers/jobnet_control_driver/nested_and_finally_spec.rb +0 -472
  57. data/spec/tengine/job/drivers/jobnet_control_driver/nested_jobnet_spec.rb +0 -231
  58. data/spec/tengine/job/drivers/jobnet_control_driver/stop_jobnet_spec.rb +0 -202
  59. data/spec/tengine/job/drivers/jobnet_control_driver_spec.rb +0 -608
  60. data/spec/tengine/job/drivers/schedule_driver_spec.rb +0 -241
  61. data/spec/tengine/job/dsl_binder_spec.rb +0 -36
  62. data/spec/tengine/job/dsl_loader_spec.rb +0 -437
  63. data/spec/tengine/job/dsls/0013_hadoop_job_run.rb +0 -29
  64. data/spec/tengine/job/dsls/0014_join_and_join.rb +0 -19
  65. data/spec/tengine/job/dsls/0015_fork_and_fork.rb +0 -18
  66. data/spec/tengine/job/dsls/0016_complex_fork_and_join.rb +0 -20
  67. data/spec/tengine/job/dsls/0017_finally.rb +0 -15
  68. data/spec/tengine/job/dsls/0018_expansion.rb +0 -23
  69. data/spec/tengine/job/dsls/0019_execute_job_on_event.rb +0 -16
  70. data/spec/tengine/job/dsls/0020_duplicated_jobnet_name.rb +0 -16
  71. data/spec/tengine/job/dsls/0021_caption.rb +0 -13
  72. data/spec/tengine/job/dsls/1060_test_dir1/1060_test_dir2/0013_hadoop_job_run.rb +0 -29
  73. data/spec/tengine/job/dsls/2003_expansion/expansion_5.rb +0 -11
  74. data/spec/tengine/job/dsls/VERSION +0 -1
  75. data/spec/tengine/job/dynamic_env_spec.rb +0 -95
  76. data/spec/tengine/job/edge_spec.rb +0 -241
  77. data/spec/tengine/job/element_selector_notation_spec.rb +0 -354
  78. data/spec/tengine/job/examples_spec.rb +0 -62
  79. data/spec/tengine/job/execution_spec.rb +0 -100
  80. data/spec/tengine/job/expansion_spec.rb +0 -116
  81. data/spec/tengine/job/hadoop_job_run_spec.rb +0 -65
  82. data/spec/tengine/job/job_spec.rb +0 -4
  83. data/spec/tengine/job/jobnet/1015_complecated_jobnet_spec.rb +0 -72
  84. data/spec/tengine/job/jobnet_actual_spec.rb +0 -175
  85. data/spec/tengine/job/jobnet_spec.rb +0 -399
  86. data/spec/tengine/job/jobnet_template_spec.rb +0 -240
  87. data/spec/tengine/job/killing_spec.rb +0 -91
  88. data/spec/tengine/job/reset_spec.rb +0 -958
  89. data/spec/tengine/job/reset_spec/4056_1_dump.txt +0 -1
  90. data/spec/tengine/job/root_jobnet_actual_spec.rb +0 -89
  91. data/spec/tengine/job/root_jobnet_template_spec.rb +0 -248
  92. data/spec/tengine/job/script_executable_spec.rb +0 -132
  93. data/spec/tengine/job/stoppable_spec.rb +0 -176
  94. data/spec/tengine/job/vertex_spec.rb +0 -25
  95. data/spec/tengine_job_spec.rb +0 -4
  96. data/tengine_job.gemspec +0 -198
  97. data/tmp/log/.gitignore +0 -1
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/Rakefile DELETED
@@ -1,42 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "tengine_job"
18
- gem.homepage = "http://github.com/tengine/tengine_job"
19
- gem.license = "MPL2.0/LGPLv3"
20
- gem.summary = %Q{tengine_job provides jobnet management}
21
- gem.description = %Q{tengine_job provides jobnet management}
22
- gem.email = "tengine-info@groovenauts.jp"
23
- gem.authors = %w[taigou totty g-morita shyouhei akm guemon]
24
- # dependencies defined in Gemfile
25
- end
26
- Jeweler::RubygemsDotOrgTasks.new
27
-
28
- require 'rspec/core'
29
- require 'rspec/core/rake_task'
30
- RSpec::Core::RakeTask.new(:spec) do |spec|
31
- spec.pattern = FileList['spec/**/*_spec.rb']
32
- end
33
-
34
- RSpec::Core::RakeTask.new(:rcov) do |spec|
35
- spec.pattern = 'spec/**/*_spec.rb'
36
- spec.rcov = true
37
- end
38
-
39
- task :default => :spec
40
-
41
- require 'yard'
42
- YARD::Rake::YardocTask.new
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.6.13
@@ -1,42 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- require File.expand_path('test_credential_fixture', File.dirname(__FILE__))
4
- require File.expand_path('test_server_fixture', File.dirname(__FILE__))
5
-
6
- # 以下のジョブネットについてテンプレートジョブネットや
7
- # 実行用ジョブネットを扱うフィクスチャ生成のためのクラスです。
8
- #
9
- # in [rjn0001]
10
- # (S1) --e1-->(j11)--e2-->(j12)--e3-->(E1)
11
-
12
- class Rjn0001SimpleJobnetBuilder < JobnetFixtureBuilder
13
- include TestCredentialFixture
14
- include TestServerFixture
15
-
16
- DSL = <<-EOS
17
- jobnet("rjn0001", :server_name => "test_server1", :credential_name => "test_credential1") do
18
- auto_sequence
19
- job("j11", "job_test j11")
20
- job("j12", "job_test j12")
21
- end
22
- EOS
23
-
24
- def create(options = {})
25
- root = new_root_jobnet("rjn0001", {
26
- :server_name => test_server1.name,
27
- :credential_name => test_credential1.name
28
- }.update(options || { }))
29
- root.children << Tengine::Job::Start.new
30
- root.children << new_script("j11", :script => "job_test j11")
31
- root.children << new_script("j12", :script => "job_test j12")
32
- root.prepare_end
33
- root.build_sequencial_edges
34
- root.save!
35
- self[:S1] = root.children[0]
36
- self[:E1] = root.children[3]
37
- self[:e1] = root.edges[0]
38
- self[:e2] = root.edges[1]
39
- self[:e3] = root.edges[2]
40
- root
41
- end
42
- end
@@ -1,42 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # 以下のジョブネットについてテンプレートジョブネットや
3
- # 実行用ジョブネットを扱うフィクスチャ生成のためのクラスです。
4
- #
5
- # in [rjn0002]
6
- # |--e2-->(j11)--e4-->|
7
- # (S1)--e1-->[F1] [J1]--e6-->(E1)
8
- # |--e3-->(j12)--e5-->|
9
-
10
- class Rjn0002SimpleParallelJobnetBuilder < JobnetFixtureBuilder
11
- include TestCredentialFixture
12
- include TestServerFixture
13
-
14
- DSL = <<-EOS
15
- jobnet("rjn0002", :server_name => "test_server1", :credential_name => "test_credential1") do
16
- boot_jobs("j11", "j12")
17
- job("j11", "job_test j11")
18
- job("j12", "job_test j12")
19
- end
20
- EOS
21
-
22
- def create(options = {})
23
- root = new_root_jobnet("rjn0002", {
24
- :server_name => test_server1.name,
25
- :credential_name => test_credential1.name
26
- }.update(options || { }))
27
- root.children << new_start
28
- root.children << new_fork
29
- root.children << new_script("j11", :script => "job_test j11")
30
- root.children << new_script("j12", :script => "job_test j12")
31
- root.children << new_join
32
- root.children << new_end
33
- root.edges << new_edge(:S1, :F1)
34
- root.edges << new_edge(:F1, :j11)
35
- root.edges << new_edge(:F1, :j12)
36
- root.edges << new_edge(:j11, :J1)
37
- root.edges << new_edge(:j12, :J1)
38
- root.edges << new_edge(:J1, :E1)
39
- root.save!
40
- root
41
- end
42
- end
@@ -1,61 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # 以下のジョブネットについてテンプレートジョブネットや
3
- # 実行用ジョブネットを扱うフィクスチャ生成のためのクラスです。
4
- #
5
- # in [rjn0003]
6
- # |--e7-->(j14)--e11-->(j16)--e14--->|
7
- # |--e2-->(j11)--e4-->(j13)--e6-->[F2] |
8
- # (S1)--e1-->[F1] |--e8-->[J1]--e12-->(j17)--e15-->[J2]--e16-->(E2)
9
- # | |--e9-->[J1] |
10
- # |--e3-->(j12)------e5---------->[F3] |
11
- # |--e10---->(j15)---e13------------>|
12
- class Rjn0003ForkJoinJobnetBuilder < JobnetFixtureBuilder
13
- DSL = <<-EOS
14
- jobnet("rjn0003") do
15
- boot_jobs("j11", "j12")
16
- job("j11", "job_test j11", :to => "j13")
17
- job("j12", "job_test j12", :to => ["j15", "j17"])
18
- job("j13", "job_test j13", :to => ["j14", "j17"])
19
- job("j14", "job_test j14", :to => "j16")
20
- job("j15", "job_test j15")
21
- job("j16", "job_test j16")
22
- job("j17", "job_test j17")
23
- end
24
- EOS
25
-
26
- def create(options = {})
27
- root = new_root_jobnet("rjn0003")
28
- root.children << new_start
29
- root.children << new_fork # F1
30
- root.children << new_script("j11", :script => "job_test j11")
31
- root.children << new_script("j12", :script => "job_test j12")
32
- root.children << new_script("j13", :script => "job_test j13")
33
- root.children << new_fork # F2
34
- root.children << new_fork # F3
35
- root.children << new_join # J1
36
- root.children << new_script("j14", :script => "job_test j14")
37
- root.children << new_script("j15", :script => "job_test j15")
38
- root.children << new_script("j16", :script => "job_test j16")
39
- root.children << new_script("j17", :script => "job_test j17")
40
- root.children << new_join # J2
41
- root.children << new_end
42
- root.edges << new_edge(:S1 , :F1 ) # e1
43
- root.edges << new_edge(:F1 , :j11) # e2
44
- root.edges << new_edge(:F1 , :j12) # e3
45
- root.edges << new_edge(:j11, :j13) # e4
46
- root.edges << new_edge(:j12, :F3 ) # e5
47
- root.edges << new_edge(:j13, :F2 ) # e6
48
- root.edges << new_edge(:F2 , :j14) # e7
49
- root.edges << new_edge(:F2 , :J1 ) # e8
50
- root.edges << new_edge(:F3 , :J1 ) # e9
51
- root.edges << new_edge(:F3 , :j15) # e10
52
- root.edges << new_edge(:j14, :j16) # e11
53
- root.edges << new_edge(:J1 , :j17) # e12
54
- root.edges << new_edge(:j15 ,:J2 ) # e13
55
- root.edges << new_edge(:j16 ,:J2 ) # e14
56
- root.edges << new_edge(:j17 ,:J2 ) # e15
57
- root.edges << new_edge(:J2 , :E1 ) # e16
58
- root.save!
59
- root
60
- end
61
- end
@@ -1,62 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # 以下のジョブネットについてテンプレートジョブネットや
3
- # 実行用ジョブネットを扱うフィクスチャ生成のためのクラスです。
4
- #
5
- # in [jn0004]
6
- # |--e3-->(j2)--e5-->|
7
- # (S1)--e1-->(j1)--e2-->[F1] [J1]--e7-->(j4)--e8-->(E1)
8
- # |--e4-->(j3)--e6-->|
9
- #
10
- # in [jn0004/finally]
11
- # (S2) --e9-->(jn0004_f)-e10-->(E2)
12
-
13
- class Rjn0004ParallelJobnetWithFinally < JobnetFixtureBuilder
14
- include TestCredentialFixture
15
- include TestServerFixture
16
-
17
- DSL = <<-EOS
18
- jobnet("jn0004", :instance_name => "test_server1", :credential_name => "test_credential1") do
19
- boot_jobs("j1")
20
- job("j1", "$HOME/0004_retry_one_layer.sh", :to => ["j2", "j3"])
21
- job("j2", "$HOME/0004_retry_one_layer.sh", :to => "j4")
22
- job("j3", "$HOME/0004_retry_one_layer.sh", :to => "j4")
23
- job("j4", "$HOME/0004_retry_one_layer.sh")
24
- finally do
25
- job("jn0004_f", "$HOME/0004_retry_one_layer.sh")
26
- end
27
- end
28
- EOS
29
-
30
- def create(options = {})
31
- root = new_root_jobnet("jn0004", {
32
- :server_name => test_server1.name,
33
- :credential_name => test_credential1.name
34
- }.update(options || { }))
35
- root.children << new_start
36
- root.children << new_script("j1", :script => "$HOME/0004_retry_one_layer.sh")
37
- root.children << new_fork
38
- root.children << new_script("j2", :script => "$HOME/0004_retry_one_layer.sh")
39
- root.children << new_script("j3", :script => "$HOME/0004_retry_one_layer.sh")
40
- root.children << new_join
41
- root.children << new_script("j4", :script => "$HOME/0004_retry_one_layer.sh")
42
- root.children << new_finally
43
- root.children << new_end
44
- root.edges << new_edge(:S1, :j1)
45
- root.edges << new_edge(:j1, :F1)
46
- root.edges << new_edge(:F1, :j2)
47
- root.edges << new_edge(:F1, :j3)
48
- root.edges << new_edge(:j2, :J1)
49
- root.edges << new_edge(:j3, :J1)
50
- root.edges << new_edge(:J1, :j4)
51
- root.edges << new_edge(:j4, :E1)
52
- root.finally_vertex do |finally|
53
- finally.children << new_start
54
- finally.children << new_script("jn0004_f", :script => "$HOME/0004_retry_one_layer.sh")
55
- finally.children << new_end
56
- finally.edges << new_edge(:S2, :jn0004_f)
57
- finally.edges << new_edge(:jn0004_f, :F2)
58
- end
59
- root.save!
60
- root
61
- end
62
- end
@@ -1,153 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- require File.expand_path('test_credential_fixture', File.dirname(__FILE__))
4
- require File.expand_path('test_server_fixture', File.dirname(__FILE__))
5
-
6
- # 以下のジョブネットについてテンプレートジョブネットや
7
- # 実行用ジョブネットを扱うフィクスチャ生成のためのクラスです。
8
- #
9
- # in [jn0005]
10
- # |--e3-->(j2)--e5--->|
11
- # (S1)--e1-->(j1)--e2-->[F1] [J1]-->e7-->(j4)--e8-->(E1)
12
- # |--e4-->[jn4]--e6-->|
13
- #
14
- # in [jn0005/jn4]
15
- # |--e11-->(j42)--e13-->|
16
- # (S2)--e9-->(j41)--e10-->[F2] [J2]--e15-->(j44)--e16-->(E2)
17
- # |--e12-->(j43)--e14-->|
18
- #
19
- # in [jn0005/jn4/finally]
20
- # (S3)--e17-->(jn4_f)--e18-->(E3)
21
- #
22
- # in [jn0005/finally]
23
- # (S4)--e19-->[jn0005_fjn]--e20-->(jn0005_f)--e21-->(E4)
24
- #
25
- # in [jn0005/finally/jn0005_fjn]
26
- # (S5)--e22-->(jn0005_f1)--e23-->(jn0005_f1)--e24-->(E5)
27
- #
28
- # in [jn0005/finally/jn0005_fjn/finally]
29
- # (S6)--e25-->(jn0005_fif)--e26-->(E6)
30
-
31
- class Rjn0005RetryTwoLayerFixture < JobnetFixtureBuilder
32
- include TestCredentialFixture
33
- include TestServerFixture
34
-
35
- DSL = <<-EOS
36
- jobnet("jn0005", :instance_name => "test_server1", :credential_name => "test_credential1") do
37
- boot_jobs("j1")
38
- job("j1", "$HOME/0005_retry_two_layer.sh", :to => ["j2", "jn4"])
39
- job("j2", "$HOME/0005_retry_two_layer.sh", :to => "j4")
40
- jobnet("jn4", :to => "j4") do
41
- boot_jobs("j41")
42
- job("j41", "$HOME/0005_retry_two_layer.sh", :to => ["j42", "j43"])
43
- job("j42", "$HOME/0005_retry_two_layer.sh", :to => "j44")
44
- job("j43", "$HOME/0005_retry_two_layer.sh", :to => "j44")
45
- job("j44", "$HOME/0005_retry_two_layer.sh")
46
- finally do
47
- job("jn4_f", "$HOME/0005_retry_two_layer.sh")
48
- end
49
- end
50
- job("j4", "$HOME/0005_retry_two_layer.sh")
51
- finally do
52
- boot_jobs("jn0005_fjn")
53
- jobnet("jn0005_fjn", :to => "jn0005_f") do
54
- boot_jobs("jn0005_f1")
55
- job("jn0005_f1", "$HOME/0005_retry_two_layer.sh", :to => ["jn0005_f2"])
56
- job("jn0005_f2", "$HOME/0005_retry_two_layer.sh")
57
- finally do
58
- job("jn0005_fif","$HOME/0005_retry_two_layer.sh")
59
- end
60
- end
61
- job("jn0005_f", "$HOME/0005_retry_two_layer.sh")
62
- end
63
- end
64
- EOS
65
-
66
- def create(options = {})
67
- root = new_root_jobnet("jn0005", {
68
- :server_name => test_server1.name,
69
- :credential_name => test_credential1.name
70
- }.update(options || { }))
71
- # root
72
- root.children << new_start
73
- root.children << new_script("j1", :script => "$HOME/0005_retry_two_layer.sh")
74
- root.children << new_fork
75
- root.children << new_script("j2", :script => "$HOME/0005_retry_two_layer.sh")
76
- root.children << new_jobnet("jn4")
77
- root.children << new_join
78
- root.children << new_script("j4", :script => "$HOME/0005_retry_two_layer.sh")
79
- root.children << new_finally
80
- root.children << new_end
81
- root.edges << new_edge(:S1, :j1)
82
- root.edges << new_edge(:j1, :F1)
83
- root.edges << new_edge(:F1, :j2)
84
- root.edges << new_edge(:F1, :jn4)
85
- root.edges << new_edge(:j2, :J1)
86
- root.edges << new_edge(:jn4, :J1)
87
- root.edges << new_edge(:J1, :j4)
88
- root.edges << new_edge(:j4, :E1)
89
-
90
- self[:jn4].tap do |jn4|
91
- jn4.children << new_start
92
- jn4.children << new_script("j41", :script => "$HOME/0005_retry_two_layer.sh")
93
- jn4.children << new_fork
94
- jn4.children << new_script("j42", :script => "$HOME/0005_retry_two_layer.sh")
95
- jn4.children << new_script("j43", :script => "$HOME/0005_retry_two_layer.sh")
96
- jn4.children << new_join
97
- jn4.children << new_script("j44", :script => "$HOME/0005_retry_two_layer.sh")
98
- jn4.children << new_finally
99
- jn4.children << new_end
100
- jn4.edges << new_edge(:S2, :j41)
101
- jn4.edges << new_edge(:j41, :F2)
102
- jn4.edges << new_edge(:F2, :j42)
103
- jn4.edges << new_edge(:F2, :j43)
104
- jn4.edges << new_edge(:j42, :J2)
105
- jn4.edges << new_edge(:j43, :J2)
106
- jn4.edges << new_edge(:J2, :j44)
107
- jn4.edges << new_edge(:j44, :E2)
108
-
109
- self[:jn4f] = jn4.finally_vertex
110
- self[:jn4f].tap do |jn4f|
111
- jn4f.children << new_start
112
- jn4f.children << new_script("jn4_f", :script => "$HOME/0005_retry_two_layer.sh")
113
- jn4f.children << new_end
114
- jn4f.edges << new_edge(:S3, :jn4_f)
115
- jn4f.edges << new_edge(:jn4_f, :E3)
116
- end
117
- end
118
-
119
- self[:finally] = root.finally_vertex
120
- self[:finally].tap do |finally|
121
- finally.children << new_start
122
- finally.children << new_jobnet("jn0005_fjn")
123
- finally.children << new_script("jn0005_f", :script => "$HOME/0005_retry_two_layer.sh")
124
- finally.children << new_end
125
- finally.edges << new_edge(:S4, :jn0005_fjn)
126
- finally.edges << new_edge(:jn0005_fjn, :jn0005_f)
127
- finally.edges << new_edge(:jn0005_f, :E4)
128
-
129
- self[:jn0005_fjn].tap do |jn0005_fjn|
130
- jn0005_fjn.children << new_start
131
- jn0005_fjn.children << new_script("jn0005_f1", :script => "$HOME/0005_retry_two_layer.sh")
132
- jn0005_fjn.children << new_script("jn0005_f2", :script => "$HOME/0005_retry_two_layer.sh")
133
- jn0005_fjn.children << new_finally
134
- jn0005_fjn.children << new_end
135
- jn0005_fjn.edges << new_edge(:S5, :jn0005_f1)
136
- jn0005_fjn.edges << new_edge(:jn0005_f1, :jn0005_f2)
137
- jn0005_fjn.edges << new_edge(:jn0005_f2, :E5)
138
-
139
- self[:jn0005_fjn_f] = jn0005_fjn.finally_vertex
140
- self[:jn0005_fjn_f].tap do |jn0005_fjn_f|
141
- jn0005_fjn_f.children << new_start
142
- jn0005_fjn_f.children << new_script("jn0005_fif", :script => "$HOME/0005_retry_two_layer.sh")
143
- jn0005_fjn_f.children << new_end
144
- jn0005_fjn_f.edges << new_edge(:S6, :jn0005_fif)
145
- jn0005_fjn_f.edges << new_edge(:jn0005_fif, :E6)
146
- end
147
- end
148
- end
149
-
150
- root.save!
151
- root
152
- end
153
- end
@@ -1,32 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # 以下のジョブネットについてテンプレートジョブネットや
3
- # 実行用ジョブネットを扱うフィクスチャ生成のためのクラスです。
4
- #
5
- # in [rjn0008]
6
- # (S1) --e1-->(rjn0001)--e2-->(rjn0002)--e3-->(E1)
7
-
8
- class Rjn0008ExpansionFixture < JobnetFixtureBuilder
9
- DSL = <<-EOS
10
- jobnet("rjn0008") do
11
- auto_sequence
12
- expansion("rjn0001")
13
- expansion("rjn0002")
14
- end
15
- EOS
16
-
17
- def create(options = {})
18
- root = new_root_jobnet("rjn0008", options)
19
- root.children << Tengine::Job::Start.new
20
- root.children << new_expansion("rjn0001")
21
- root.children << new_expansion("rjn0002")
22
- root.prepare_end
23
- root.build_sequencial_edges
24
- root.save!
25
- self[:S1] = root.children[0]
26
- self[:E1] = root.children[3]
27
- self[:e1] = root.edges[0]
28
- self[:e2] = root.edges[1]
29
- self[:e3] = root.edges[2]
30
- root
31
- end
32
- end