tengine_job 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile.lock +78 -48
  3. data/bin/tengine_job +71 -0
  4. data/examples/0004_retry_one_layer.rb +10 -7
  5. data/examples/0027_parallel_ssh_job +9 -0
  6. data/examples/0027_parallel_ssh_jobs.rb +14 -0
  7. data/lib/tengine/job.rb +19 -49
  8. data/lib/tengine/job/dsl.rb +13 -0
  9. data/lib/tengine/job/{dsl_binder.rb → dsl/binder.rb} +4 -4
  10. data/lib/tengine/job/{dsl_evaluator.rb → dsl/evaluator.rb} +2 -2
  11. data/lib/tengine/job/{dsl_loader.rb → dsl/loader.rb} +20 -22
  12. data/lib/tengine/job/runtime.rb +32 -0
  13. data/lib/tengine/job/{drivers → runtime/drivers}/job_control_driver.rb +46 -92
  14. data/lib/tengine/job/{drivers → runtime/drivers}/job_execution_driver.rb +14 -10
  15. data/lib/tengine/job/runtime/drivers/jobnet_control_driver.rb +240 -0
  16. data/lib/tengine/job/{drivers → runtime/drivers}/schedule_driver.rb +4 -4
  17. data/lib/tengine/job/{edge.rb → runtime/edge.rb} +79 -25
  18. data/lib/tengine/job/{executable.rb → runtime/executable.rb} +35 -15
  19. data/lib/tengine/job/{execution.rb → runtime/execution.rb} +19 -11
  20. data/lib/tengine/job/runtime/job_base.rb +5 -0
  21. data/lib/tengine/job/runtime/jobnet.rb +283 -0
  22. data/lib/tengine/job/runtime/junction.rb +44 -0
  23. data/lib/tengine/job/runtime/named_vertex.rb +95 -0
  24. data/lib/tengine/job/runtime/root_jobnet.rb +81 -0
  25. data/lib/tengine/job/{signal.rb → runtime/signal.rb} +99 -13
  26. data/lib/tengine/job/runtime/ssh_job.rb +486 -0
  27. data/lib/tengine/job/{jobnet → runtime}/state_transition.rb +6 -4
  28. data/lib/tengine/job/runtime/stoppable.rb +64 -0
  29. data/lib/tengine/job/runtime/vertex.rb +50 -0
  30. data/lib/tengine/job/structure.rb +20 -0
  31. data/lib/tengine/job/{category.rb → structure/category.rb} +9 -5
  32. data/lib/tengine/job/{jobnet/builder.rb → structure/edge_builder.rb} +11 -7
  33. data/lib/tengine/job/{element_selector_notation.rb → structure/element_selector_notation.rb} +15 -11
  34. data/lib/tengine/job/structure/jobnet_builder.rb +83 -0
  35. data/lib/tengine/job/structure/jobnet_finder.rb +60 -0
  36. data/lib/tengine/job/{name_path.rb → structure/name_path.rb} +2 -2
  37. data/lib/tengine/job/structure/tree.rb +20 -0
  38. data/lib/tengine/job/structure/visitor.rb +67 -0
  39. data/lib/tengine/job/template.rb +24 -0
  40. data/lib/tengine/job/template/edge.rb +37 -0
  41. data/lib/tengine/job/template/expansion.rb +24 -0
  42. data/lib/tengine/job/template/generator.rb +111 -0
  43. data/lib/tengine/job/template/jobnet.rb +83 -0
  44. data/lib/tengine/job/template/junction.rb +14 -0
  45. data/lib/tengine/job/{job.rb → template/named_vertex.rb} +3 -5
  46. data/lib/tengine/job/{root_jobnet_template.rb → template/root_jobnet.rb} +12 -26
  47. data/lib/tengine/job/template/ssh_job.rb +80 -0
  48. data/lib/tengine/job/template/vertex.rb +97 -0
  49. metadata +127 -93
  50. data/lib/tengine/job/connectable.rb +0 -43
  51. data/lib/tengine/job/drivers/jobnet_control_driver.rb +0 -249
  52. data/lib/tengine/job/end.rb +0 -32
  53. data/lib/tengine/job/expansion.rb +0 -37
  54. data/lib/tengine/job/fork.rb +0 -6
  55. data/lib/tengine/job/jobnet.rb +0 -184
  56. data/lib/tengine/job/jobnet/job_state_transition.rb +0 -167
  57. data/lib/tengine/job/jobnet/jobnet_state_transition.rb +0 -110
  58. data/lib/tengine/job/jobnet_actual.rb +0 -84
  59. data/lib/tengine/job/jobnet_template.rb +0 -10
  60. data/lib/tengine/job/join.rb +0 -6
  61. data/lib/tengine/job/junction.rb +0 -29
  62. data/lib/tengine/job/killing.rb +0 -30
  63. data/lib/tengine/job/mm_compatibility.rb +0 -6
  64. data/lib/tengine/job/mm_compatibility/connectable.rb +0 -13
  65. data/lib/tengine/job/root.rb +0 -16
  66. data/lib/tengine/job/root_jobnet_actual.rb +0 -58
  67. data/lib/tengine/job/script_executable.rb +0 -235
  68. data/lib/tengine/job/start.rb +0 -20
  69. data/lib/tengine/job/stoppable.rb +0 -15
  70. data/lib/tengine/job/vertex.rb +0 -181
@@ -0,0 +1,80 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'tengine/job/template'
3
+
4
+ require 'tengine_resource'
5
+
6
+ # ルートジョブネットを他のジョブネット内に展開するための特殊なテンプレート用Vertex。
7
+ class Tengine::Job::Template::SshJob < Tengine::Job::Template::NamedVertex
8
+
9
+ # Tengine::Job::Runtime::SshJobとTengine::Job::Template::Jobnetでも必要な属性
10
+ module Settings
11
+ extend ActiveSupport::Concern
12
+
13
+ DEFAULT_KILLING_SIGNAL_INTERVAL = 5
14
+ DEFAULT_KILLING_SIGNALS = ['KILL'].freeze
15
+
16
+ included do
17
+ require 'tengine/core'
18
+ include Tengine::Core::CollectionAccessible
19
+
20
+ field :script , :type => String # 実行されるスクリプト
21
+
22
+ field :server_name , :type => String # 接続先となるサーバ名。Tengine::Resource::Server#name を指定します
23
+ field :credential_name, :type => String # 接続時に必要な認証情報。Tengine::Resource::Credential#name を指定します
24
+
25
+ # 強制停止時にプロセスに送るシグナルの配列
26
+ field :killing_signals, type: Array
27
+ array_text_accessor :killing_signals
28
+
29
+ # 強制停止時にkilling_signalsで定義されるシグナルを順次送信する間隔。
30
+ field :killing_signal_interval, type: Integer
31
+ end
32
+
33
+ def actual_credential_name
34
+ credential_name || (runtime? ? nil : parent ? parent.actual_credential_name : nil)
35
+ end
36
+
37
+ def actual_server_name
38
+ server_name || (runtime? ? nil : parent ? parent.actual_server_name : nil)
39
+ end
40
+
41
+ def actual_credential
42
+ key = actual_credential_name
43
+ return nil if key.blank?
44
+ result = Tengine::Resource::Credential.where({:name => key}).first
45
+ # TODO 使用する例外クラスはこれで良いのか検討
46
+ raise Mongoid::Errors::DocumentNotFound.new(Tengine::Resource::Credential, key, []) unless result
47
+ result
48
+ end
49
+
50
+ def actual_server
51
+ key = actual_server_name
52
+ return nil if key.blank?
53
+ result = Tengine::Resource::Server.where({:name => key}).first
54
+ # TODO 使用する例外クラスはこれで良いのか検討
55
+ raise Mongoid::Errors::DocumentNotFound.new(Tengine::Resource::Server, key, []) unless result
56
+ result
57
+ end
58
+
59
+ def actual_killing_signals
60
+ killing_signals ? killing_signals :
61
+ (runtime? ? nil : parent ? parent.actual_killing_signals : DEFAULT_KILLING_SIGNALS.dup)
62
+ end
63
+
64
+ def actual_killing_signal_interval
65
+ killing_signals ? killing_signal_interval :
66
+ (runtime? ? nil : parent ? parent.actual_killing_signal_interval : DEFAULT_KILLING_SIGNAL_INTERVAL)
67
+ end
68
+ end
69
+
70
+ include Settings
71
+
72
+ # @override
73
+ def generating_attrs
74
+ result = super
75
+ result[:server_name] = actual_server_name
76
+ result[:credential_name] = actual_credential_name
77
+ result
78
+ end
79
+
80
+ end
@@ -0,0 +1,97 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'tengine/job/template'
3
+
4
+ # Edgeとともにジョブネットを構成するグラフの「頂点」を表すモデル
5
+ # 自身がツリー構造を
6
+ class Tengine::Job::Template::Vertex
7
+ include Mongoid::Document
8
+ include Mongoid::Timestamps
9
+ include Tengine::Job::Structure::NamePath
10
+ include Tengine::Job::Structure::Tree
11
+ include Tengine::Job::Structure::Visitor::Accepter
12
+
13
+ self.cyclic = true
14
+ with_options(:class_name => self.name, :cyclic => true) do |c|
15
+ # parentにはあえてinverse_ofを設定していません。これはtengine_uiでのrails_adminによる
16
+ # 画面表示に問題が発生するためです。
17
+ # またchildrenについてのinverse_ofは必要です。設定しないとDSLのロードが動きません。
18
+ c.embedded_in :parent # , inverse_of: :children
19
+ c.embeds_many :children, :validate => false, inverse_of: :parent
20
+ accepts_nested_attributes_for :children
21
+ end
22
+
23
+ before_validation do |r|
24
+ r.children.each do |child|
25
+ child.valid?
26
+ child.errors.each do |f, error|
27
+ r.errors.add(:base, error)
28
+ end
29
+ end
30
+ end
31
+
32
+ # def short_inspect
33
+ # "#<%%%-30s id: %s>" % [self.class.name, self.id.to_s]
34
+ # end
35
+ # alias_method :long_inspect, :inspect
36
+ # alias_method :inspect, :short_inspect
37
+
38
+ def template?; true; end
39
+ def runtime?; !template?; end
40
+
41
+ class VertexValidations < Mongoid::Errors::Validations
42
+ def translate(key, options)
43
+ ::I18n.translate(
44
+ "#{Mongoid::Errors::MongoidError::BASE_KEY}.validations",
45
+ {:errors => Tengine::Job::Template::Vertex.flatten_errors(document).to_a.join(', ')})
46
+ end
47
+ end
48
+
49
+ class << self
50
+ def flatten_errors(vertex, dest = nil)
51
+ dest ||= []
52
+ children_errors = vertex.errors.messages.delete(:children)
53
+ edges_errors = vertex.errors.messages.delete(:edges)
54
+ vertex.errors.full_messages.each{|msg| dest << "#{vertex.name_path} #{msg}"}
55
+ vertex.children.each{|child| flatten_errors(child, dest)}
56
+ if vertex.respond_to?(:edges)
57
+ vertex.edges.each do|edge|
58
+ edge.errors.full_messages.each{|msg| dest << "#{edge.name_for_message} #{msg}"}
59
+ end
60
+ end
61
+ dest
62
+ end
63
+
64
+ def raise_flatten_errors
65
+ yield if block_given?
66
+ rescue Mongoid::Errors::Validations => e
67
+ raise VertexValidations, e.document
68
+ end
69
+
70
+ def create!(*args, &block)
71
+ raise_flatten_errors{ super(*args, &block) }
72
+ end
73
+ end
74
+
75
+ def save!(*args)
76
+ self.class.raise_flatten_errors{ super(*args) }
77
+ end
78
+ def update_attributes!(*args)
79
+ self.class.raise_flatten_errors{ super(*args) }
80
+ end
81
+
82
+ def previous_edges
83
+ return nil unless parent
84
+ parent.edges.select{|edge| edge.destination_id == self.id}
85
+ end
86
+ alias_method :prev_edges, :previous_edges
87
+
88
+ def next_edges
89
+ return nil unless parent
90
+ parent.edges.select{|edge| edge.origin_id == self.id}
91
+ end
92
+
93
+
94
+ def generate(options = {})
95
+ Tengine::Job::Template::Generator.new.execute(self, options)
96
+ end
97
+ end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tengine_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - taigou
@@ -14,76 +13,67 @@ authors:
14
13
  autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
- date: 2012-12-19 00:00:00.000000000 Z
16
+ date: 2013-04-30 00:00:00.000000000 Z
18
17
  dependencies:
19
18
  - !ruby/object:Gem::Dependency
20
19
  name: tengine_support
21
20
  requirement: !ruby/object:Gem::Requirement
22
- none: false
23
21
  requirements:
24
22
  - - ~>
25
23
  - !ruby/object:Gem::Version
26
- version: 1.1.0
24
+ version: 1.2.0
27
25
  type: :runtime
28
26
  prerelease: false
29
27
  version_requirements: !ruby/object:Gem::Requirement
30
- none: false
31
28
  requirements:
32
29
  - - ~>
33
30
  - !ruby/object:Gem::Version
34
- version: 1.1.0
31
+ version: 1.2.0
35
32
  - !ruby/object:Gem::Dependency
36
33
  name: tengine_core
37
34
  requirement: !ruby/object:Gem::Requirement
38
- none: false
39
35
  requirements:
40
36
  - - ~>
41
37
  - !ruby/object:Gem::Version
42
- version: 1.1.0
38
+ version: 1.2.0
43
39
  type: :runtime
44
40
  prerelease: false
45
41
  version_requirements: !ruby/object:Gem::Requirement
46
- none: false
47
42
  requirements:
48
43
  - - ~>
49
44
  - !ruby/object:Gem::Version
50
- version: 1.1.0
45
+ version: 1.2.0
51
46
  - !ruby/object:Gem::Dependency
52
47
  name: tengine_resource
53
48
  requirement: !ruby/object:Gem::Requirement
54
- none: false
55
49
  requirements:
56
50
  - - ~>
57
51
  - !ruby/object:Gem::Version
58
- version: 1.1.0
52
+ version: 1.2.0
59
53
  type: :runtime
60
54
  prerelease: false
61
55
  version_requirements: !ruby/object:Gem::Requirement
62
- none: false
63
56
  requirements:
64
57
  - - ~>
65
58
  - !ruby/object:Gem::Version
66
- version: 1.1.0
59
+ version: 1.2.0
67
60
  - !ruby/object:Gem::Dependency
68
61
  name: tengine_resource_ec2
69
62
  requirement: !ruby/object:Gem::Requirement
70
- none: false
71
63
  requirements:
72
64
  - - ~>
73
65
  - !ruby/object:Gem::Version
74
- version: 1.1.0
66
+ version: 1.2.0
75
67
  type: :development
76
68
  prerelease: false
77
69
  version_requirements: !ruby/object:Gem::Requirement
78
- none: false
79
70
  requirements:
80
71
  - - ~>
81
72
  - !ruby/object:Gem::Version
82
- version: 1.1.0
73
+ version: 1.2.0
83
74
  - !ruby/object:Gem::Dependency
84
75
  name: bundler
85
76
  requirement: !ruby/object:Gem::Requirement
86
- none: false
87
77
  requirements:
88
78
  - - ! '>='
89
79
  - !ruby/object:Gem::Version
@@ -91,7 +81,6 @@ dependencies:
91
81
  type: :development
92
82
  prerelease: false
93
83
  version_requirements: !ruby/object:Gem::Requirement
94
- none: false
95
84
  requirements:
96
85
  - - ! '>='
97
86
  - !ruby/object:Gem::Version
@@ -99,23 +88,20 @@ dependencies:
99
88
  - !ruby/object:Gem::Dependency
100
89
  name: rake
101
90
  requirement: !ruby/object:Gem::Requirement
102
- none: false
103
91
  requirements:
104
- - - ~>
92
+ - - ! '>='
105
93
  - !ruby/object:Gem::Version
106
- version: 0.9.2.2
94
+ version: '0'
107
95
  type: :development
108
96
  prerelease: false
109
97
  version_requirements: !ruby/object:Gem::Requirement
110
- none: false
111
98
  requirements:
112
- - - ~>
99
+ - - ! '>='
113
100
  - !ruby/object:Gem::Version
114
- version: 0.9.2.2
101
+ version: '0'
115
102
  - !ruby/object:Gem::Dependency
116
103
  name: rspec
117
104
  requirement: !ruby/object:Gem::Requirement
118
- none: false
119
105
  requirements:
120
106
  - - ~>
121
107
  - !ruby/object:Gem::Version
@@ -123,7 +109,6 @@ dependencies:
123
109
  type: :development
124
110
  prerelease: false
125
111
  version_requirements: !ruby/object:Gem::Requirement
126
- none: false
127
112
  requirements:
128
113
  - - ~>
129
114
  - !ruby/object:Gem::Version
@@ -131,39 +116,34 @@ dependencies:
131
116
  - !ruby/object:Gem::Dependency
132
117
  name: yard
133
118
  requirement: !ruby/object:Gem::Requirement
134
- none: false
135
119
  requirements:
136
- - - ~>
120
+ - - ! '>='
137
121
  - !ruby/object:Gem::Version
138
- version: 0.8.1
122
+ version: '0'
139
123
  type: :development
140
124
  prerelease: false
141
125
  version_requirements: !ruby/object:Gem::Requirement
142
- none: false
143
126
  requirements:
144
- - - ~>
127
+ - - ! '>='
145
128
  - !ruby/object:Gem::Version
146
- version: 0.8.1
129
+ version: '0'
147
130
  - !ruby/object:Gem::Dependency
148
131
  name: simplecov
149
132
  requirement: !ruby/object:Gem::Requirement
150
- none: false
151
133
  requirements:
152
- - - ~>
134
+ - - ! '>='
153
135
  - !ruby/object:Gem::Version
154
- version: 0.6.4
136
+ version: '0'
155
137
  type: :development
156
138
  prerelease: false
157
139
  version_requirements: !ruby/object:Gem::Requirement
158
- none: false
159
140
  requirements:
160
- - - ~>
141
+ - - ! '>='
161
142
  - !ruby/object:Gem::Version
162
- version: 0.6.4
143
+ version: '0'
163
144
  - !ruby/object:Gem::Dependency
164
145
  name: autotest
165
146
  requirement: !ruby/object:Gem::Requirement
166
- none: false
167
147
  requirements:
168
148
  - - ! '>='
169
149
  - !ruby/object:Gem::Version
@@ -171,15 +151,41 @@ dependencies:
171
151
  type: :development
172
152
  prerelease: false
173
153
  version_requirements: !ruby/object:Gem::Requirement
174
- none: false
175
154
  requirements:
176
155
  - - ! '>='
177
156
  - !ruby/object:Gem::Version
178
157
  version: '0'
179
158
  - !ruby/object:Gem::Dependency
180
- name: rdiscount
159
+ name: pry
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ - !ruby/object:Gem::Dependency
173
+ name: pry-doc
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ! '>='
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ type: :development
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ - !ruby/object:Gem::Dependency
187
+ name: pry-debugger
181
188
  requirement: !ruby/object:Gem::Requirement
182
- none: false
183
189
  requirements:
184
190
  - - ! '>='
185
191
  - !ruby/object:Gem::Version
@@ -187,15 +193,41 @@ dependencies:
187
193
  type: :development
188
194
  prerelease: false
189
195
  version_requirements: !ruby/object:Gem::Requirement
190
- none: false
191
196
  requirements:
192
197
  - - ! '>='
193
198
  - !ruby/object:Gem::Version
194
199
  version: '0'
200
+ - !ruby/object:Gem::Dependency
201
+ name: ZenTest
202
+ requirement: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ~>
205
+ - !ruby/object:Gem::Version
206
+ version: 4.9.0
207
+ type: :development
208
+ prerelease: false
209
+ version_requirements: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ~>
212
+ - !ruby/object:Gem::Version
213
+ version: 4.9.0
214
+ - !ruby/object:Gem::Dependency
215
+ name: tengine_job_agent
216
+ requirement: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ~>
219
+ - !ruby/object:Gem::Version
220
+ version: 1.2.0
221
+ type: :development
222
+ prerelease: false
223
+ version_requirements: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ~>
226
+ - !ruby/object:Gem::Version
227
+ version: 1.2.0
195
228
  - !ruby/object:Gem::Dependency
196
229
  name: factory_girl
197
230
  requirement: !ruby/object:Gem::Requirement
198
- none: false
199
231
  requirements:
200
232
  - - ~>
201
233
  - !ruby/object:Gem::Version
@@ -203,7 +235,6 @@ dependencies:
203
235
  type: :development
204
236
  prerelease: false
205
237
  version_requirements: !ruby/object:Gem::Requirement
206
- none: false
207
238
  requirements:
208
239
  - - ~>
209
240
  - !ruby/object:Gem::Version
@@ -212,6 +243,7 @@ description: tengine_job provides jobnet management
212
243
  email: tengine-info@groovenauts.jp
213
244
  executables:
214
245
  - create_indexes_for_tengine_job
246
+ - tengine_job
215
247
  extensions: []
216
248
  extra_rdoc_files:
217
249
  - README.rdoc
@@ -227,75 +259,77 @@ files:
227
259
  - examples/0006_retry_three_layer.sh
228
260
  - examples/0007_simple_jobnet.rb
229
261
  - examples/0021_dynamic_env.rb
262
+ - examples/0027_parallel_ssh_job
263
+ - examples/0027_parallel_ssh_jobs.rb
230
264
  - examples/tengine_job_test.sh
231
265
  - examples/VERSION
232
- - lib/tengine/job/category.rb
233
- - lib/tengine/job/connectable.rb
234
- - lib/tengine/job/drivers/job_control_driver.rb
235
- - lib/tengine/job/drivers/job_execution_driver.rb
236
- - lib/tengine/job/drivers/jobnet_control_driver.rb
237
- - lib/tengine/job/drivers/schedule_driver.rb
238
- - lib/tengine/job/dsl_binder.rb
239
- - lib/tengine/job/dsl_evaluator.rb
240
- - lib/tengine/job/dsl_loader.rb
241
- - lib/tengine/job/edge.rb
242
- - lib/tengine/job/element_selector_notation.rb
243
- - lib/tengine/job/end.rb
244
- - lib/tengine/job/executable.rb
245
- - lib/tengine/job/execution.rb
246
- - lib/tengine/job/expansion.rb
247
- - lib/tengine/job/fork.rb
248
- - lib/tengine/job/job.rb
249
- - lib/tengine/job/jobnet/builder.rb
250
- - lib/tengine/job/jobnet/job_state_transition.rb
251
- - lib/tengine/job/jobnet/jobnet_state_transition.rb
252
- - lib/tengine/job/jobnet/state_transition.rb
253
- - lib/tengine/job/jobnet.rb
254
- - lib/tengine/job/jobnet_actual.rb
255
- - lib/tengine/job/jobnet_template.rb
256
- - lib/tengine/job/join.rb
257
- - lib/tengine/job/junction.rb
258
- - lib/tengine/job/killing.rb
259
- - lib/tengine/job/mm_compatibility/connectable.rb
260
- - lib/tengine/job/mm_compatibility.rb
261
- - lib/tengine/job/name_path.rb
262
- - lib/tengine/job/root.rb
263
- - lib/tengine/job/root_jobnet_actual.rb
264
- - lib/tengine/job/root_jobnet_template.rb
265
- - lib/tengine/job/script_executable.rb
266
- - lib/tengine/job/signal.rb
267
- - lib/tengine/job/start.rb
268
- - lib/tengine/job/stoppable.rb
269
- - lib/tengine/job/vertex.rb
266
+ - lib/tengine/job/dsl/binder.rb
267
+ - lib/tengine/job/dsl/evaluator.rb
268
+ - lib/tengine/job/dsl/loader.rb
269
+ - lib/tengine/job/dsl.rb
270
+ - lib/tengine/job/runtime/drivers/job_control_driver.rb
271
+ - lib/tengine/job/runtime/drivers/job_execution_driver.rb
272
+ - lib/tengine/job/runtime/drivers/jobnet_control_driver.rb
273
+ - lib/tengine/job/runtime/drivers/schedule_driver.rb
274
+ - lib/tengine/job/runtime/edge.rb
275
+ - lib/tengine/job/runtime/executable.rb
276
+ - lib/tengine/job/runtime/execution.rb
277
+ - lib/tengine/job/runtime/job_base.rb
278
+ - lib/tengine/job/runtime/jobnet.rb
279
+ - lib/tengine/job/runtime/junction.rb
280
+ - lib/tengine/job/runtime/named_vertex.rb
281
+ - lib/tengine/job/runtime/root_jobnet.rb
282
+ - lib/tengine/job/runtime/signal.rb
283
+ - lib/tengine/job/runtime/ssh_job.rb
284
+ - lib/tengine/job/runtime/state_transition.rb
285
+ - lib/tengine/job/runtime/stoppable.rb
286
+ - lib/tengine/job/runtime/vertex.rb
287
+ - lib/tengine/job/runtime.rb
288
+ - lib/tengine/job/structure/category.rb
289
+ - lib/tengine/job/structure/edge_builder.rb
290
+ - lib/tengine/job/structure/element_selector_notation.rb
291
+ - lib/tengine/job/structure/jobnet_builder.rb
292
+ - lib/tengine/job/structure/jobnet_finder.rb
293
+ - lib/tengine/job/structure/name_path.rb
294
+ - lib/tengine/job/structure/tree.rb
295
+ - lib/tengine/job/structure/visitor.rb
296
+ - lib/tengine/job/structure.rb
297
+ - lib/tengine/job/template/edge.rb
298
+ - lib/tengine/job/template/expansion.rb
299
+ - lib/tengine/job/template/generator.rb
300
+ - lib/tengine/job/template/jobnet.rb
301
+ - lib/tengine/job/template/junction.rb
302
+ - lib/tengine/job/template/named_vertex.rb
303
+ - lib/tengine/job/template/root_jobnet.rb
304
+ - lib/tengine/job/template/ssh_job.rb
305
+ - lib/tengine/job/template/vertex.rb
306
+ - lib/tengine/job/template.rb
270
307
  - lib/tengine/job.rb
271
308
  - lib/tengine_job.rb
272
309
  - bin/create_indexes_for_tengine_job
310
+ - bin/tengine_job
273
311
  homepage: http://github.com/tengine/tengine_job
274
312
  licenses:
275
313
  - MPL2.0/LGPLv3
314
+ metadata: {}
276
315
  post_install_message:
277
316
  rdoc_options: []
278
317
  require_paths:
279
318
  - lib
280
319
  required_ruby_version: !ruby/object:Gem::Requirement
281
- none: false
282
320
  requirements:
283
321
  - - ! '>='
284
322
  - !ruby/object:Gem::Version
285
323
  version: '0'
286
- segments:
287
- - 0
288
- hash: 1404326031848686310
289
324
  required_rubygems_version: !ruby/object:Gem::Requirement
290
- none: false
291
325
  requirements:
292
326
  - - ! '>='
293
327
  - !ruby/object:Gem::Version
294
328
  version: '0'
295
329
  requirements: []
296
330
  rubyforge_project:
297
- rubygems_version: 1.8.23
331
+ rubygems_version: 2.0.3
298
332
  signing_key:
299
- specification_version: 3
333
+ specification_version: 4
300
334
  summary: tengine_job provides jobnet management
301
335
  test_files: []