barbeque 0.0.1 → 0.0.10

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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -3
  3. data/Rakefile +2 -6
  4. data/app/assets/javascripts/barbeque/application.js +5 -0
  5. data/app/assets/javascripts/barbeque/job_definitions.coffee +10 -0
  6. data/app/assets/stylesheets/barbeque/application.scss +7 -0
  7. data/app/assets/stylesheets/barbeque/common.scss +22 -0
  8. data/app/assets/stylesheets/barbeque/job_definitions.scss +21 -0
  9. data/app/controllers/barbeque/api/application_controller.rb +22 -0
  10. data/app/controllers/barbeque/api/job_executions_controller.rb +35 -0
  11. data/app/controllers/barbeque/api/job_retries_controller.rb +28 -0
  12. data/app/controllers/barbeque/api/revision_locks_controller.rb +34 -0
  13. data/app/controllers/barbeque/apps_controller.rb +43 -0
  14. data/app/controllers/barbeque/job_definitions_controller.rb +86 -0
  15. data/app/controllers/barbeque/job_executions_controller.rb +19 -0
  16. data/app/controllers/barbeque/job_queues_controller.rb +59 -0
  17. data/app/controllers/barbeque/job_retries_controller.rb +10 -0
  18. data/app/helpers/barbeque/job_definitions_helper.rb +14 -0
  19. data/app/helpers/barbeque/job_executions_helper.rb +18 -0
  20. data/app/models/{api → barbeque/api}/application_resource.rb +3 -1
  21. data/app/models/{api → barbeque/api}/job_execution_resource.rb +1 -1
  22. data/app/models/{api → barbeque/api}/job_retry_resource.rb +1 -1
  23. data/app/models/barbeque/api/revision_lock_resource.rb +7 -0
  24. data/app/models/{app.rb → barbeque/app.rb} +1 -1
  25. data/app/models/barbeque/job_definition.rb +26 -0
  26. data/app/models/{job_execution.rb → barbeque/job_execution.rb} +7 -4
  27. data/app/models/{job_queue.rb → barbeque/job_queue.rb} +1 -1
  28. data/app/models/{job_retry.rb → barbeque/job_retry.rb} +7 -2
  29. data/app/models/{slack_notification.rb → barbeque/slack_notification.rb} +1 -1
  30. data/app/services/barbeque/message_enqueuing_service.rb +41 -0
  31. data/app/services/barbeque/message_retrying_service.rb +32 -0
  32. data/app/views/barbeque/apps/_form.html.haml +34 -0
  33. data/app/views/barbeque/apps/edit.html.haml +3 -0
  34. data/app/views/barbeque/apps/index.html.haml +24 -0
  35. data/app/views/barbeque/apps/new.html.haml +3 -0
  36. data/app/views/barbeque/apps/show.html.haml +47 -0
  37. data/app/views/barbeque/job_definitions/_form.html.haml +45 -0
  38. data/app/views/barbeque/job_definitions/_slack_notification_field.html.haml +35 -0
  39. data/app/views/barbeque/job_definitions/edit.html.haml +3 -0
  40. data/app/views/barbeque/job_definitions/index.html.haml +24 -0
  41. data/app/views/barbeque/job_definitions/new.html.haml +3 -0
  42. data/app/views/barbeque/job_definitions/show.html.haml +90 -0
  43. data/app/views/barbeque/job_definitions/stats.html.haml +52 -0
  44. data/app/views/barbeque/job_executions/show.html.haml +92 -0
  45. data/app/views/barbeque/job_queues/_form.html.haml +29 -0
  46. data/app/views/barbeque/job_queues/edit.html.haml +3 -0
  47. data/app/views/barbeque/job_queues/index.html.haml +22 -0
  48. data/app/views/barbeque/job_queues/new.html.haml +3 -0
  49. data/app/views/barbeque/job_queues/show.html.haml +22 -0
  50. data/app/views/barbeque/job_retries/show.html.haml +59 -0
  51. data/app/views/layouts/barbeque/_header.html.haml +10 -0
  52. data/app/views/layouts/barbeque/_sidebar.html.haml +16 -0
  53. data/app/views/layouts/barbeque/application.html.haml +24 -0
  54. data/app/views/layouts/barbeque/apps.html.haml +6 -0
  55. data/app/views/layouts/barbeque/job_definitions.html.haml +6 -0
  56. data/app/views/layouts/barbeque/job_executions.html.haml +5 -0
  57. data/app/views/layouts/barbeque/job_queues.html.haml +6 -0
  58. data/config/initializers/garage.rb +4 -0
  59. data/config/routes.rb +32 -0
  60. data/db/migrate/20160829023237_prefix_barbeque_to_tables.rb +10 -0
  61. data/lib/barbeque.rb +3 -5
  62. data/lib/barbeque/configuration.rb +19 -0
  63. data/lib/barbeque/docker_image.rb +20 -0
  64. data/lib/barbeque/engine.rb +11 -0
  65. data/lib/barbeque/execution_log.rb +51 -0
  66. data/lib/barbeque/message.rb +28 -0
  67. data/lib/barbeque/message/base.rb +29 -0
  68. data/lib/barbeque/message/invalid_message.rb +11 -0
  69. data/lib/barbeque/message/job_execution.rb +20 -0
  70. data/lib/barbeque/message/job_retry.rb +16 -0
  71. data/lib/barbeque/message_handler.rb +8 -0
  72. data/lib/barbeque/message_handler/job_execution.rb +86 -0
  73. data/lib/barbeque/message_handler/job_retry.rb +83 -0
  74. data/lib/barbeque/message_queue.rb +66 -0
  75. data/lib/barbeque/runner.rb +12 -0
  76. data/lib/barbeque/runner/docker.rb +34 -0
  77. data/lib/barbeque/slack_client.rb +48 -0
  78. data/lib/barbeque/version.rb +1 -1
  79. data/lib/barbeque/worker.rb +58 -0
  80. data/lib/tasks/barbeque_tasks.rake +9 -4
  81. metadata +272 -18
  82. data/app/assets/stylesheets/barbeque/application.css +0 -15
  83. data/app/models/application_record.rb +0 -3
  84. data/app/models/job_definition.rb +0 -14
  85. data/app/views/layouts/barbeque/application.html.erb +0 -14
@@ -0,0 +1,66 @@
1
+ require 'aws-sdk'
2
+ require 'barbeque/message'
3
+
4
+ module Barbeque
5
+ class MessageQueue
6
+ attr_reader :job_queue
7
+
8
+ def initialize(queue_name)
9
+ @job_queue = Barbeque::JobQueue.find_by!(name: queue_name)
10
+ @messages = []
11
+ @stop = false
12
+ end
13
+
14
+ # Receive a message and delete them all from SQS queue immediately.
15
+ # TODO: Stop removing them immediately to implement retry.
16
+ # @return [Barbeque::Message::Base]
17
+ def dequeue
18
+ while valid_messages.empty?
19
+ return nil if @stop
20
+ messages = receive_messages
21
+ messages = reject_invalid_messages(messages)
22
+ valid_messages.concat(messages)
23
+ end
24
+
25
+ valid_messages.shift.tap do |message|
26
+ delete_message(message)
27
+ end
28
+ end
29
+
30
+ def stop!
31
+ @stop = true
32
+ end
33
+
34
+ private
35
+
36
+ def receive_messages
37
+ result = client.receive_message(
38
+ queue_url: @job_queue.queue_url,
39
+ wait_time_seconds: Barbeque::JobQueue::SQS_RECEIVE_MESSAGE_WAIT_TIME,
40
+ )
41
+ result.messages.map { |m| Barbeque::Message.parse(m) }
42
+ end
43
+
44
+ def reject_invalid_messages(messages)
45
+ messages, invalid_messages = messages.partition(&:valid?)
46
+ invalid_messages.each { |m| delete_message(m) }
47
+ messages
48
+ end
49
+
50
+ # Remove a message from SQS queue.
51
+ def delete_message(message)
52
+ client.delete_message(
53
+ queue_url: @job_queue.queue_url,
54
+ receipt_handle: message.receipt_handle,
55
+ )
56
+ end
57
+
58
+ def valid_messages
59
+ @valid_messages ||= []
60
+ end
61
+
62
+ def client
63
+ @client ||= Aws::SQS::Client.new
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,12 @@
1
+ require 'barbeque/configuration'
2
+ require 'barbeque/runner/docker'
3
+
4
+ module Barbeque
5
+ module Runner
6
+ # @param [Barbeque::DockerImage] docker_image
7
+ def self.create(docker_image:)
8
+ klass = const_get(Barbeque.config.runner, false)
9
+ klass.new(docker_image: docker_image)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,34 @@
1
+ require 'open3'
2
+
3
+ module Barbeque
4
+ module Runner
5
+ class Docker
6
+ # @param [Barbeque::DockerImage] docker_image
7
+ def initialize(docker_image:)
8
+ @docker_image = docker_image.to_s
9
+ end
10
+
11
+ # @param [Array<String>] command
12
+ # @param [Hash] envs
13
+ # @return [String] stdout
14
+ # @return [String] stderr
15
+ # @return [Process::Status] status
16
+ def run(command, envs)
17
+ cmd = build_docker_run_command(command, envs)
18
+ Bundler.with_clean_env { Open3.capture3(*cmd) }
19
+ end
20
+
21
+ private
22
+
23
+ def build_docker_run_command(command, envs)
24
+ ['docker', 'run', *env_options(envs), @docker_image, *command]
25
+ end
26
+
27
+ def env_options(envs)
28
+ envs.flat_map do |key, value|
29
+ ['--env', "#{key}=#{value}"]
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,48 @@
1
+ require 'net/http'
2
+ require 'json'
3
+ require 'uri'
4
+
5
+ module Barbeque
6
+ class SlackClient
7
+ def initialize(channel)
8
+ @channel = channel
9
+ end
10
+
11
+ def notify_success(message)
12
+ post_slack(
13
+ attachments: [{
14
+ text: message,
15
+ color: 'good',
16
+ mrkdwn_in: ['text'],
17
+ }],
18
+ )
19
+ end
20
+
21
+ def notify_failure(message)
22
+ post_slack(
23
+ attachments: [{
24
+ text: message,
25
+ color: 'danger',
26
+ mrkdwn_in: ['text'],
27
+ }],
28
+ )
29
+ end
30
+
31
+ private
32
+
33
+ def post_slack(payload)
34
+ Net::HTTP.post_form(
35
+ endpoint_uri,
36
+ payload: default_payload.merge(payload).to_json,
37
+ )
38
+ end
39
+
40
+ def default_payload
41
+ { link_names: 1, channel: @channel }
42
+ end
43
+
44
+ def endpoint_uri
45
+ @endpoint_uri ||= URI.parse(ENV['SLACK_WEBHOOK_URL'])
46
+ end
47
+ end
48
+ end
@@ -1,3 +1,3 @@
1
1
  module Barbeque
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.10'
3
3
  end
@@ -0,0 +1,58 @@
1
+ require 'barbeque/message_handler'
2
+ require 'barbeque/message_queue'
3
+ require 'serverengine'
4
+
5
+ module Barbeque
6
+ module Worker
7
+ class UnexpectedMessageType < StandardError; end
8
+
9
+ DEFAULT_QUEUE = 'default'
10
+
11
+ def self.run
12
+ options = {
13
+ worker_type: 'process',
14
+ workers: (ENV['BARBEQUE_WORKER_NUM'] || 4).to_i,
15
+ daemonize: ENV['DAEMONIZE_BARBEQUE'] == '1',
16
+ log: Rails.env.production? ? Rails.root.join("log/barbeque_worker.log").to_s : $stdout,
17
+ log_level: Rails.env.production? ? :info : :debug,
18
+ pid_path: Rails.root.join('tmp/pids/barbeque_worker.pid').to_s,
19
+ supervisor: Rails.env.production?,
20
+ }
21
+
22
+ worker = ServerEngine.create(nil, Barbeque::Worker, options)
23
+ worker.run
24
+ end
25
+
26
+ def initialize
27
+ @queue_name = ENV['BARBEQUE_QUEUE'] || DEFAULT_QUEUE
28
+ end
29
+
30
+ def run
31
+ until @stop
32
+ execute_job
33
+ end
34
+ end
35
+
36
+ def stop
37
+ @stop = true
38
+ message_queue.stop!
39
+ end
40
+
41
+ def execute_job
42
+ message = message_queue.dequeue
43
+ return unless message
44
+
45
+ handler = MessageHandler.const_get(message.type, false)
46
+ handler.new(message: message, job_queue: message_queue.job_queue).run
47
+ rescue => e
48
+ # Use Raven.capture_exception
49
+ Rails.logger.fatal("[ERROR] #{e.inspect}\n#{e.backtrace.join("\n")}")
50
+ end
51
+
52
+ private
53
+
54
+ def message_queue
55
+ @message_queue ||= MessageQueue.new(@queue_name)
56
+ end
57
+ end
58
+ end
@@ -1,4 +1,9 @@
1
- # desc "Explaining what the task does"
2
- # task :barbeque do
3
- # # Task goes here
4
- # end
1
+ namespace :barbeque do
2
+ desc 'Start worker to execute jobs'
3
+ task worker: :environment do
4
+ ENV['BARBEQUE_QUEUE'] ||= 'default'
5
+
6
+ require 'barbeque/worker'
7
+ Barbeque::Worker.run
8
+ end
9
+ end
metadata CHANGED
@@ -1,15 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barbeque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-29 00:00:00.000000000 Z
11
+ date: 2016-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: adminlte2-rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: coffee-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: hamlit
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: hashie
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: jquery-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: kaminari
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
13
111
  - !ruby/object:Gem::Dependency
14
112
  name: rails
15
113
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +122,34 @@ dependencies:
24
122
  - - "~>"
25
123
  - !ruby/object:Gem::Version
26
124
  version: 5.0.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: sass-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: serverengine
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
27
153
  - !ruby/object:Gem::Dependency
28
154
  name: the_garage
29
155
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +164,62 @@ dependencies:
38
164
  - - ">="
39
165
  - !ruby/object:Gem::Version
40
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: uglifier
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: weak_parameters
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: factory_girl_rails
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: listen
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
41
223
  - !ruby/object:Gem::Dependency
42
224
  name: mysql2
43
225
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +234,21 @@ dependencies:
52
234
  - - ">="
53
235
  - !ruby/object:Gem::Version
54
236
  version: '0'
55
- description: barbeque engine
237
+ - !ruby/object:Gem::Dependency
238
+ name: rspec-rails
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ description: Job queue interface to run job with Docker
56
252
  email:
57
253
  - takashi-kokubun@cookpad.com
58
254
  executables: []
@@ -64,23 +260,65 @@ files:
64
260
  - Rakefile
65
261
  - app/assets/config/barbeque_manifest.js
66
262
  - app/assets/javascripts/barbeque/application.js
67
- - app/assets/stylesheets/barbeque/application.css
263
+ - app/assets/javascripts/barbeque/job_definitions.coffee
264
+ - app/assets/stylesheets/barbeque/application.scss
265
+ - app/assets/stylesheets/barbeque/common.scss
266
+ - app/assets/stylesheets/barbeque/job_definitions.scss
267
+ - app/controllers/barbeque/api/application_controller.rb
268
+ - app/controllers/barbeque/api/job_executions_controller.rb
269
+ - app/controllers/barbeque/api/job_retries_controller.rb
270
+ - app/controllers/barbeque/api/revision_locks_controller.rb
68
271
  - app/controllers/barbeque/application_controller.rb
272
+ - app/controllers/barbeque/apps_controller.rb
273
+ - app/controllers/barbeque/job_definitions_controller.rb
274
+ - app/controllers/barbeque/job_executions_controller.rb
275
+ - app/controllers/barbeque/job_queues_controller.rb
276
+ - app/controllers/barbeque/job_retries_controller.rb
69
277
  - app/helpers/barbeque/application_helper.rb
278
+ - app/helpers/barbeque/job_definitions_helper.rb
279
+ - app/helpers/barbeque/job_executions_helper.rb
70
280
  - app/jobs/barbeque/application_job.rb
71
281
  - app/mailers/barbeque/application_mailer.rb
72
- - app/models/api/application_resource.rb
73
- - app/models/api/job_execution_resource.rb
74
- - app/models/api/job_retry_resource.rb
75
- - app/models/app.rb
76
- - app/models/application_record.rb
282
+ - app/models/barbeque/api/application_resource.rb
283
+ - app/models/barbeque/api/job_execution_resource.rb
284
+ - app/models/barbeque/api/job_retry_resource.rb
285
+ - app/models/barbeque/api/revision_lock_resource.rb
286
+ - app/models/barbeque/app.rb
77
287
  - app/models/barbeque/application_record.rb
78
- - app/models/job_definition.rb
79
- - app/models/job_execution.rb
80
- - app/models/job_queue.rb
81
- - app/models/job_retry.rb
82
- - app/models/slack_notification.rb
83
- - app/views/layouts/barbeque/application.html.erb
288
+ - app/models/barbeque/job_definition.rb
289
+ - app/models/barbeque/job_execution.rb
290
+ - app/models/barbeque/job_queue.rb
291
+ - app/models/barbeque/job_retry.rb
292
+ - app/models/barbeque/slack_notification.rb
293
+ - app/services/barbeque/message_enqueuing_service.rb
294
+ - app/services/barbeque/message_retrying_service.rb
295
+ - app/views/barbeque/apps/_form.html.haml
296
+ - app/views/barbeque/apps/edit.html.haml
297
+ - app/views/barbeque/apps/index.html.haml
298
+ - app/views/barbeque/apps/new.html.haml
299
+ - app/views/barbeque/apps/show.html.haml
300
+ - app/views/barbeque/job_definitions/_form.html.haml
301
+ - app/views/barbeque/job_definitions/_slack_notification_field.html.haml
302
+ - app/views/barbeque/job_definitions/edit.html.haml
303
+ - app/views/barbeque/job_definitions/index.html.haml
304
+ - app/views/barbeque/job_definitions/new.html.haml
305
+ - app/views/barbeque/job_definitions/show.html.haml
306
+ - app/views/barbeque/job_definitions/stats.html.haml
307
+ - app/views/barbeque/job_executions/show.html.haml
308
+ - app/views/barbeque/job_queues/_form.html.haml
309
+ - app/views/barbeque/job_queues/edit.html.haml
310
+ - app/views/barbeque/job_queues/index.html.haml
311
+ - app/views/barbeque/job_queues/new.html.haml
312
+ - app/views/barbeque/job_queues/show.html.haml
313
+ - app/views/barbeque/job_retries/show.html.haml
314
+ - app/views/layouts/barbeque/_header.html.haml
315
+ - app/views/layouts/barbeque/_sidebar.html.haml
316
+ - app/views/layouts/barbeque/application.html.haml
317
+ - app/views/layouts/barbeque/apps.html.haml
318
+ - app/views/layouts/barbeque/job_definitions.html.haml
319
+ - app/views/layouts/barbeque/job_executions.html.haml
320
+ - app/views/layouts/barbeque/job_queues.html.haml
321
+ - config/initializers/garage.rb
84
322
  - config/routes.rb
85
323
  - db/migrate/20160217020910_create_job_queues.rb
86
324
  - db/migrate/20160219010912_create_job_executions.rb
@@ -91,11 +329,28 @@ files:
91
329
  - db/migrate/20160415043427_create_slack_notifications.rb
92
330
  - db/migrate/20160509041452_add_job_queue_id_to_job_executions.rb
93
331
  - db/migrate/20160516041710_create_job_retries.rb
332
+ - db/migrate/20160829023237_prefix_barbeque_to_tables.rb
94
333
  - lib/barbeque.rb
334
+ - lib/barbeque/configuration.rb
335
+ - lib/barbeque/docker_image.rb
95
336
  - lib/barbeque/engine.rb
337
+ - lib/barbeque/execution_log.rb
338
+ - lib/barbeque/message.rb
339
+ - lib/barbeque/message/base.rb
340
+ - lib/barbeque/message/invalid_message.rb
341
+ - lib/barbeque/message/job_execution.rb
342
+ - lib/barbeque/message/job_retry.rb
343
+ - lib/barbeque/message_handler.rb
344
+ - lib/barbeque/message_handler/job_execution.rb
345
+ - lib/barbeque/message_handler/job_retry.rb
346
+ - lib/barbeque/message_queue.rb
347
+ - lib/barbeque/runner.rb
348
+ - lib/barbeque/runner/docker.rb
349
+ - lib/barbeque/slack_client.rb
96
350
  - lib/barbeque/version.rb
351
+ - lib/barbeque/worker.rb
97
352
  - lib/tasks/barbeque_tasks.rake
98
- homepage:
353
+ homepage: https://github.com/cookpad/barbeque
99
354
  licenses:
100
355
  - MIT
101
356
  metadata: {}
@@ -118,6 +373,5 @@ rubyforge_project:
118
373
  rubygems_version: 2.5.1
119
374
  signing_key:
120
375
  specification_version: 4
121
- summary: barbeque engine
376
+ summary: Job queue interface to run job with Docker
122
377
  test_files: []
123
- has_rdoc: