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
@@ -1,105 +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
- # [rjn1004]
10
- # (S1)--e1-->(job1)--e2-->[hadoop_job_run1]--e3-->(job2)--e4-->(E1)
11
- #
12
- # [hadoop_job_run1]
13
- # (S2)--e5-->[hadoop_job1]--e6-->[hadoop_job2]--e7-->(E2)
14
- #
15
- # [hadoop_job1]
16
- # |--e9--->(Map)------e11-->|
17
- # (S3)--e8-->[F1] [J1]--e13-->(E3)
18
- # |--e10-->(Reduce) --e12-->|
19
- #
20
- # [hadoop_job2]
21
- # |--e15-->(Map)------e17-->|
22
- # (S4)--e14-->[F2] [J2]--e19-->(E4)
23
- # |--e16-->(Reduce) --e18-->|
24
-
25
- class Rjn1004HadoopJobInJobnetFixture < JobnetFixtureBuilder
26
- include TestCredentialFixture
27
- include TestServerFixture
28
-
29
- DSL = <<-EOS
30
- require 'tengine_job'
31
-
32
- jobnet("jobnet1004", :instance_name => "test_server1", :credential_name => "test_credential1") do
33
- auto_sequence
34
- job("job1", "$HOME/import_hdfs.sh")
35
- hadoop_job_run("hadoop_job_run1", "Hadoopジョブ1", "$HOME/hadoop_job_run.sh") do
36
- hadoop_job("hadoop_job1")
37
- hadoop_job("hadoop_job2")
38
- end
39
- job("job2", "$HOME/export_hdfs.sh")
40
- end
41
- EOS
42
-
43
- def create(options = {})
44
- root = new_root_jobnet("rjn1004", {
45
- :server_name => test_server1.name,
46
- :credential_name => test_credential1.name
47
- }.update(options || { }))
48
- root.children << new_start
49
- root.children << new_script("job1", :script => "$HOME/import_hdfs.sh")
50
- root.children << new_jobnet("hadoop_job_run1", :jobnet_type_key => :hadoop_job_run,
51
- :description => "Hadoopジョブ1", :script => "$HOME/hadoop_job_run.sh")
52
- root.children << new_script("job2", :script => "$HOME/export_hdfs.sh")
53
- root.children << new_end
54
- root.build_sequencial_edges
55
- self[:e1] = root.edges[0]
56
- self[:e2] = root.edges[1]
57
- self[:e3] = root.edges[2]
58
- self[:e4] = root.edges[3]
59
-
60
- self[:hadoop_job_run1].tap do |hadoop_job_run1|
61
- hadoop_job_run1.children << new_start
62
- hadoop_job_run1.children << new_jobnet("hadoop_job1", :jobnet_type_key => :hadoop_job)
63
- hadoop_job_run1.children << new_jobnet("hadoop_job2", :jobnet_type_key => :hadoop_job)
64
- hadoop_job_run1.children << new_end
65
- hadoop_job_run1.build_sequencial_edges
66
- self[:e5] = hadoop_job_run1.edges[0]
67
- self[:e6] = hadoop_job_run1.edges[1]
68
- self[:e7] = hadoop_job_run1.edges[2]
69
-
70
-
71
- self[:hadoop_job1].tap do |hadoop_job1|
72
- hadoop_job1.children << new_start
73
- hadoop_job1.children << new_fork
74
- hadoop_job1.children << new_jobnet("Map", :jobnet_type_key => :map_phase)
75
- hadoop_job1.children << new_jobnet("Reduce", :jobnet_type_key => :reduce_phase)
76
- hadoop_job1.children << new_join
77
- hadoop_job1.children << new_end
78
- hadoop_job1.edges << new_edge(:S3, :F1)
79
- hadoop_job1.edges << new_edge(:F1, :Map )
80
- hadoop_job1.edges << new_edge(:F1, :Reduce)
81
- hadoop_job1.edges << new_edge(:Map , :J1)
82
- hadoop_job1.edges << new_edge(:Reduce, :J1)
83
- hadoop_job1.edges << new_edge(:J1, :E3)
84
- end
85
-
86
- self[:hadoop_job2].tap do |hadoop_job1|
87
- hadoop_job1.children << new_start
88
- hadoop_job1.children << new_fork
89
- hadoop_job1.children << new_jobnet("Map", :jobnet_type_key => :map_phase)
90
- hadoop_job1.children << new_jobnet("Reduce", :jobnet_type_key => :reduce_phase)
91
- hadoop_job1.children << new_join
92
- hadoop_job1.children << new_end
93
- hadoop_job1.edges << new_edge(:S4, :F2)
94
- hadoop_job1.edges << new_edge(:F2, :Map )
95
- hadoop_job1.edges << new_edge(:F2, :Reduce)
96
- hadoop_job1.edges << new_edge(:Map , :J2)
97
- hadoop_job1.edges << new_edge(:Reduce, :J2)
98
- hadoop_job1.edges << new_edge(:J2, :E4)
99
- end
100
- end
101
-
102
- root.save!
103
- root
104
- end
105
- end
File without changes
@@ -1,12 +0,0 @@
1
- module TestCredentialFixture
2
- module_function
3
-
4
- def test_credential1
5
- Tengine::Resource::Credential.find_or_create_by(
6
- :name => "test_credential1",
7
- :auth_type_key => :ssh_password,
8
- :auth_values => { :username => "goku", :password => "dragonball"}
9
- )
10
- end
11
-
12
- end
@@ -1,28 +0,0 @@
1
- module TestServerFixture
2
- module_function
3
-
4
- def test_server1
5
- Tengine::Resource::PhysicalServer.find_or_create_by(
6
- :name => "test_server1",
7
- :provided_id => "test_server1",
8
- :properties => {},
9
- :addresses => {
10
- :private_dns_name => "localhost",
11
- # :private_ip_address => "127.0.0.1"
12
- }
13
- )
14
- end
15
-
16
- def test_server2
17
- Tengine::Resource::PhysicalServer.find_or_create_by(
18
- :name => "test_server2",
19
- :provided_id => "test_server2",
20
- :properties => {},
21
- :addresses => {
22
- :private_dns_name => "test_server2",
23
- :private_ip_address => "192.168.1.2"
24
- }
25
- )
26
- end
27
-
28
- end
data/spec/mongoid.yml DELETED
@@ -1,35 +0,0 @@
1
- defaults: &defaults
2
- # mongoid defaults for configurable settings
3
- # autocreate_indexes: false
4
- # allow_dynamic_fields: true
5
- # include_root_in_json: false
6
- # parameterize_keys: true
7
- persist_in_safe_mode: true
8
- # raise_not_found_error: true
9
- # reconnect_time: 3
10
- logger: false
11
-
12
- development:
13
- <<: *defaults
14
- host: localhost
15
- database: tengine_job_development
16
-
17
- test:
18
- <<: *defaults
19
- host: localhost
20
- database: tengine_job_test
21
- autocreate_indexes: true
22
-
23
- # set these environment variables on your prod server
24
- production:
25
- <<: *defaults
26
- host: <%= ENV['MONGOID_HOST'] %>
27
- port: <%= ENV['MONGOID_PORT'] %>
28
- username: <%= ENV['MONGOID_USERNAME'] %>
29
- password: <%= ENV['MONGOID_PASSWORD'] %>
30
- database: <%= ENV['MONGOID_DATABASE'] %>
31
- # slaves:
32
- # - host: slave1.local
33
- # port: 27018
34
- # - host: slave2.local
35
- # port: 27019
data/spec/spec_helper.rb DELETED
@@ -1,58 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- ENV["RACK_ENV"] ||= "test" # Mongoid.load!で参照しています
3
-
4
- require 'simplecov'
5
- SimpleCov.start if ENV["COVERAGE"]
6
-
7
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
8
- $LOAD_PATH.unshift(File.dirname(__FILE__))
9
- require 'rspec'
10
- require 'factory_girl'
11
-
12
- require 'tengine_job'
13
- require 'mongoid'
14
- Mongoid.load!(File.expand_path('mongoid.yml', File.dirname(__FILE__)))
15
- Mongoid.database.connection.drop_database(Mongoid.database.name)
16
-
17
- gem_names = ["tengine_core", "tengine_resource"]
18
- gem_names.each{|f| require f}
19
-
20
- base_dirs = gem_names.map{|gem_name| Gem.loaded_specs[gem_name].gem_dir}
21
- # base_dirs += [File.expand_path("..", File.dirname(__FILE__))]
22
- base_dirs += [File.expand_path(".")]
23
- base_dirs.each do |dir_path|
24
- # fixtures/以下のファイルがsupport以下のファイルに依存していることがあるので、
25
- # あえて2回検索しています
26
- Dir["#{dir_path}/spec/support/**/*.rb"].each {|f| require f}
27
- Dir["#{dir_path}/spec/fixtures/**/*.rb"].each {|f| require f}
28
- end
29
-
30
-
31
- Tengine::Core::MethodTraceable.disabled = true
32
- require 'logger'
33
- log_path = File.expand_path("../tmp/log/test.log", File.dirname(__FILE__))
34
- Tengine.logger = Logger.new(log_path)
35
- Tengine.logger.level = Logger::DEBUG
36
- Tengine::Core.stdout_logger = Tengine.logger
37
- Tengine::Core.stderr_logger = Tengine.logger
38
- # Tengine::Core.stdout_logger = Logger.new(log_path)
39
- # Tengine::Core.stdout_logger.level = Logger::DEBUG
40
- # Tengine::Core.stderr_logger = Logger.new(log_path)
41
- # Tengine::Core.stderr_logger.level = Logger::DEBUG
42
-
43
- Tengine::Core::Kernel.event_exception_reporter = :raise_all
44
-
45
- Tengine::Core::Config::Core::Tengined.default_cache_drivers = true
46
-
47
- RSpec.configure do |config|
48
- config.include Factory::Syntax::Methods
49
-
50
- config.before(:all) do
51
- unless Tengine::Core::Setting.first(:conditions => {:name => "dsl_version"})
52
- Tengine::Core::Setting.create!(:name => "dsl_version", :value => "1234567890")
53
- end
54
- end
55
-
56
- end
57
-
58
- Dir["#{File.expand_path('factories', File.dirname(__FILE__))}/**/*.rb"].each {|f| require f}
data/spec/sshd/.gitignore DELETED
@@ -1 +0,0 @@
1
- /sshd.pid
data/spec/sshd/id_rsa DELETED
@@ -1,51 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- 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
- TU5J8rNRYBc5NaG4G8iyEn5iHMBIH4BFod5Nhs6XCdlMfhps3ndX8Md71OcwTacV
4
- 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
- aDFMH36+NTDZI4IYFmtLrIo9c0UD2FDRNaZLlh/ANsrRxbZkQs/yOkOP7/XCSi7E
6
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- PEsqMMeIDzGDINs+cG0LENb9iYtAA6YM2sqLMZHf7tRuRC9n3l8foFePgy+1M+8i
32
- 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
- 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
- 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
- OwARR3Wg1nAV8J8Ftc5s+rwXpEulEBDBaaF0K9/FaT5569Ifiues0APaKtXnRHNT
36
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- ouNt+mSM+/+obHHT0A9FdyiRdOi9CwKCAQBGOVMZvUdkRfoJmPccJxNxlpjrbJmR
46
- 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
- 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
- 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
- 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
- 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
51
- -----END RSA PRIVATE KEY-----
data/spec/sshd/id_rsa.pub DELETED
@@ -1 +0,0 @@
1
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEA4f7DPhFU/rWePj9PIAiHArgBVXq+g1fWYjtQj2CldoMn+lL4TU5J8rNRYBc5NaG4G8iyEn5iHMBIH4BFod5Nhs6XCdlMfhps3ndX8Md71OcwTacVucoXaEO3i6mN6an6KfDCjIBHLORfRuLWt33E+0220gRT7NIgads5bV7P9/1uUsliaDFMH36+NTDZI4IYFmtLrIo9c0UD2FDRNaZLlh/ANsrRxbZkQs/yOkOP7/XCSi7ED1UenBj3TKrk2NfDKTlga1Vj3+24dSqkM3uWd2MzVCM3Umm+pxFvpf/hgtD4TZFgbaUEblaU2v2RRaxrItNV1dtw17DSHWBfIlXNpWGcHmt1lbEKH5zFiZSp9Vf9o+AyUVPUjI05kmyw+90eYfUeNrkJB7KMyhwaWLk4R6/Fmz103NvaCSnxgp6U3M/mIblbCz+lKOdTALWBzGV8UsTO6XWwHY8vRZyeibXVBYNgPBXb1YRnqFufl0z+j7lXrsPIwYxHEf55PC6xpCIpyrFUiYBeJR8Y6CvGZYBAfVCaU5EI0yIRavyJAOaTOg3nPYxRciQd55YJ+8ddUxTNiC8KnlQXmW2ljREWRgifa1co6Ip50xECj7jALKnpCb7v4PtLqjY+cXm8K8EQsBfBwDjeolZO1Ka0Q+0Rnpz+c+Yj0VrejzkrbAT3yA34C3c= tengine job test sshd client rsa key
@@ -1,51 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- OSDZrCHynDu02iJw0UdDeeBhx2X40f9vPWfRe54/3FBP1ye8EnUXRr9JylpHijT/
29
- bQKGEFzM31UCggEBAOJKz9slRrPmr0jAVOBiPSakuUKkTyf0yQq70qRiKICQFBFS
30
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 8LbY8U3i+RJhxj1lFhvfAK35cOxTAoIBAQDI/AgVcEMlO0d60oobAHap8Sitrbji
46
- UaRbCsQ1oX1sNNSzxL+y9HaQojmuHhTSH9dFyTVNb3gkGhyyD+cEoffgFCXTLccf
47
- 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
- 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
- 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
- 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
51
- -----END RSA PRIVATE KEY-----
@@ -1 +0,0 @@
1
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEA1VmHE0WvJgj82+ltiOXtJ86yf8HHUHq1agt/PXl8/E0Ayl69VXft0p0837oxjlQNZZxPV+Zf/gI1X5NyB/x0+Kn4T/CJ1ubMQ8COpX7J3h/uA/DBljjWizLkh4x5WqztQ7HIEgt2zKDV+qaiJOO7l8IYnIT7Iq7ArFUyms+nAHuc/VzOFErUD0njHjfiVLq9fzJuvjaIMHV0tX3tXlA6mv7LAz1qphxaiKj50OGXpSXDQrTLEYQW+5/WruXhQ3gj46IcgVaBeKMD/D6dO4vg81Z0kbgylJvnXZBqugqnLXzOJmz0tMfJx6ZjGDJ5EHl2mUEQmPoeOKy6Xsni2T2TFiAQebSLjhRyDdDPKiSUx5sNo76qPKSpBJJOAfeDV288K9mo7KdZ+fHoyoy77HPgUnXUcpig5KdKpfaYxFL2f6gHZKk30s+6y3Iwz3WmZ3R7iCkQwjc2x9xcbTRBjFuYuMFTyX3Qo5Yg2h8RBTgz9O8LaCdb0girct8BIbZUA0SL8pQZg7xTQNL6isDbOMHo34L1NpljgidVnZflPLQ5iyGPsLMcnai4DM37ORNbkSOPHcefoRfJNFWyryrzpiVh6u/cIw4UYRnAbq6yBwhIFNoJkAwXSaZyNdVEKhCXIdSvXh2hH9g+2zEREppCRaoPWLG8jjYUzUWiJMfRVxFYNK8= tengine job test sshd host rsa key
@@ -1,10 +0,0 @@
1
- Port 1234
2
- AddressFamily any
3
- Protocol 2
4
-
5
- PermitRootLogin no
6
- StrictModes yes
7
- PubkeyAuthentication yes
8
- PasswordAuthentication no
9
- PermitEmptyPasswords no
10
- AuthorizedKeysFile /Users/shyouhei/data/src/tengine/tengine_job/spec/sshd/id_rsa.pub
@@ -1,11 +0,0 @@
1
- Port <%= @port %>
2
- AddressFamily any
3
- Protocol 2
4
-
5
- PermitRootLogin no
6
- StrictModes yes
7
- PubkeyAuthentication yes
8
- PasswordAuthentication no
9
- PermitEmptyPasswords no
10
- AuthorizedKeysFile <%= File.expand_path("id_rsa.pub", ssh_dir) %>
11
- PidFile <%= File.expand_path("sshd.pid", ssh_dir) %>
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env bash
2
- typeset -i time=$1
3
- export LOGFILE=tengine_job_test.log
4
- echo "`date` tengine_job_test $2 start" >> $LOGFILE
5
- sleep `expr 1 + $time`
6
- echo "`date` tengine_job_test $2 finish" >> $LOGFILE
@@ -1,145 +0,0 @@
1
- class JobnetFixtureBuilder
2
- def initialize
3
- reset
4
- end
5
-
6
- def reset
7
- @instances = {}
8
- @start_count = 0
9
- @end_count = 0
10
- @fork_count = 0
11
- @join_count = 0
12
- @edge_count = 0
13
- end
14
-
15
-
16
- def [](instance_name)
17
- @instances[instance_name.to_sym]
18
- end
19
-
20
- def []=(instance_name, instance)
21
- @instances[instance_name.to_sym] = instance
22
- end
23
-
24
- def create_template(options = {})
25
- reset
26
- @mode = :template
27
- create(options)
28
- end
29
-
30
- def create_actual(options = {})
31
- template = create_template
32
- reset
33
- @mode = :actual
34
- options = (options || {}).update(:template => template)
35
- create(options)
36
- end
37
-
38
- def context
39
- self
40
- end
41
-
42
- def vertex(vertex_name)
43
- cached = self[vertex_name.to_sym]
44
- raise ArgumentError, "no vertex found for #{vertex_name.inspect}" unless cached
45
- self[:root].vertex(cached.id)
46
- end
47
-
48
- def edge(edge_name)
49
- cached = self[edge_name.to_sym]
50
- raise ArgumentError, "no edge found for #{edge_name.inspect}" unless cached
51
- self[:root].edge(cached.id)
52
- end
53
-
54
- def create(options = {})
55
- raise NotImplementedError, "You must use inherited class of FixtureBuilder"
56
- end
57
-
58
- MODE_AND_METHOD_TO_CLASS = {
59
- [:template, :root_jobnet] => Tengine::Job::RootJobnetTemplate,
60
- [:actual , :root_jobnet] => Tengine::Job::RootJobnetActual ,
61
- [:template, :jobnet ] => Tengine::Job::JobnetTemplate ,
62
- [:actual , :jobnet ] => Tengine::Job::JobnetActual ,
63
- [:template, :script ] => Tengine::Job::JobnetTemplate ,
64
- [:actual , :script ] => Tengine::Job::JobnetActual ,
65
- [:template, :finally ] => Tengine::Job::JobnetTemplate ,
66
- [:actual , :finally ] => Tengine::Job::JobnetActual ,
67
- }.freeze
68
-
69
- %w[root_jobnet jobnet script].each do |method_name|
70
- root_assign = method_name =~ /^root_/ ? "@instances[:root] = result" : ""
71
-
72
- class_eval(<<-EOS)
73
- def new_#{method_name}(name, attrs = {}, &block)
74
- attrs[:name] = name.to_s
75
- klass = MODE_AND_METHOD_TO_CLASS[ [@mode, :#{method_name}] ]
76
- if klass == Tengine::Job::RootJobnetTemplate
77
- attrs[:dsl_version] ||= Tengine::Core::Setting.dsl_version
78
- end
79
- result = klass.new(attrs, &block)
80
- @instances[name.to_sym] = result
81
- #{root_assign}
82
- result
83
- end
84
- EOS
85
- end
86
-
87
- def new_finally
88
- klass = MODE_AND_METHOD_TO_CLASS[ [@mode, :finally] ]
89
- result = klass.new(:name => "finally", :jobnet_type_key => :finally)
90
- result
91
- end
92
-
93
- def new_expansion(name, attrs = {}, &block)
94
- raise "expansion can be used only as template" unless @mode == :template
95
- result = Tengine::Job::Expansion.new({:name => name}.update(attrs || {}))
96
- @instances[name.to_sym] = result
97
- result
98
- end
99
-
100
-
101
- ABBREVIATES = {
102
- 'start' => 'S',
103
- 'end' => 'E',
104
- 'fork' => 'F',
105
- 'join' => 'J',
106
- }.freeze
107
-
108
- %w[start end fork join].each do |method_name|
109
- class_eval(<<-EOS)
110
- def new_#{method_name}(attrs = {}, &block)
111
- klass = Tengine::Job::#{method_name.camelcase}
112
- result = klass.new(attrs, &block)
113
- register_#{method_name}(result)
114
- end
115
-
116
- def register_#{method_name}(result)
117
- @#{method_name}_count += 1
118
- name = ABBREVIATES["#{method_name}"] + @#{method_name}_count.to_s
119
- @instances[name.to_sym] = result
120
- result
121
- end
122
- EOS
123
- end
124
-
125
- def new_edge(origin, dest)
126
- origin_vertex = origin.is_a?(Symbol) ? self[origin] : origin
127
- dest_vertex = dest .is_a?(Symbol) ? self[dest ] : dest
128
- raise "no origin vertex found: #{origin.inspect}" unless origin_vertex
129
- raise "no dest vertex found: #{dest.inspect }" unless dest_vertex
130
- result = Tengine::Job::Edge.new(:origin_id => origin_vertex.id, :destination_id => dest_vertex.id)
131
- remember_edge(result)
132
- end
133
-
134
- def remember_edge(edge)
135
- @edge_count += 1
136
- name = "e#{@edge_count}"
137
- @instances[name.to_sym] = edge
138
- edge
139
- end
140
-
141
- def check_edge_count(expected)
142
- raise "edge count error: expected #{expected} but #{@edge_count}" unless @edge_count == expected
143
- end
144
-
145
- end