barbeque 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fdd657c4fecd71f71469707c7583541cc8d3dab7
4
- data.tar.gz: f6911be9efb1970c036697bcc8e5a46edbdb605d
3
+ metadata.gz: 58e7a032e02c8f3b25da0acf89cb8636677c3256
4
+ data.tar.gz: f403cc33bbe0dd813f0e48561dfd873c305e92a8
5
5
  SHA512:
6
- metadata.gz: 4d89b39fd628a67c7144613989d77c0b4fc3407c307e9409991263ad704b2e667d73981519ed59a543d24ba21c94e390830965c9e6eb3f823127acbf3d3996c2
7
- data.tar.gz: 5697f62a1d5053fd2ab82ac60cabc4a6ad70eea87317fd6d800e251ab242e7a55edfc86299eec598c3b6d4c0111829f3f7387e21f7ddc726ce96d7e22d3e12d7
6
+ metadata.gz: a6eb976a11b1ddccd77e30e26a350d583440a72ef98ac38a47527bc5481c45bf407b75d8eee713baef789cfbdc06a51163646162c12fa3dd4588f05a26261611
7
+ data.tar.gz: 032fc003c5b8285c870d278421480d309c1aab60d8f8f5d5985a0fb319221230355895fa3c4588be042f5e844fd188aa663f02edd15b025b7c65c8ec068b42d1
@@ -3,25 +3,51 @@ require 'barbeque/config'
3
3
  module Barbeque
4
4
  module ExceptionHandler
5
5
  class << self
6
- def handle_exception(e)
7
- handler.handle_exception(e)
8
- end
6
+ delegate :clear_context, :set_message_context, :handle_exception, to: :handler
9
7
 
10
8
  private
11
9
 
12
10
  def handler
13
- @handler ||= const_get(Barbeque.config.exception_handler, false)
11
+ @handler ||= const_get(Barbeque.config.exception_handler, false).new
14
12
  end
15
13
  end
16
14
 
17
- module RailsLogger
18
- def self.handle_exception(e)
19
- Rails.logger.error("#{e.inspect}\n#{e.backtrace.join("\n")}")
15
+ class RailsLogger
16
+ def initialize
17
+ clear_context
18
+ end
19
+
20
+ def clear_context
21
+ @message_id = nil
22
+ @message_type = nil
23
+ end
24
+
25
+ # @param [String] message_id
26
+ # @param [String, nil] message_type
27
+ def set_message_context(message_id, message_type)
28
+ @message_id = message_id
29
+ @message_type = message_type
30
+ end
31
+
32
+ # @param [Exception] e
33
+ def handle_exception(e)
34
+ Rails.logger.error("#{e.inspect}\nmessage_id: #{@message_id}, message_type: #{@message_type}\n#{e.backtrace.join("\n")}")
20
35
  end
21
36
  end
22
37
 
23
- module Raven
24
- def self.handle_exception(e)
38
+ class Raven
39
+ def clear_context
40
+ ::Raven::Context.clear!
41
+ end
42
+
43
+ # @param [String] message_id
44
+ # @param [String, nil] message_type
45
+ def set_message_context(message_id, message_type)
46
+ ::Raven.tags_context(message_id: message_id, message_type: message_type)
47
+ end
48
+
49
+ # @param [Exception] e
50
+ def handle_exception(e)
25
51
  ::Raven.capture_exception(e)
26
52
  end
27
53
  end
@@ -1,3 +1,5 @@
1
+ require 'barbeque/exception_handler'
2
+
1
3
  module Barbeque
2
4
  class ExecutionPoller
3
5
  def initialize
@@ -27,6 +29,7 @@ module Barbeque
27
29
  private
28
30
 
29
31
  def poll(job_execution)
32
+ Barbeque::ExceptionHandler.set_message_context(job_execution.message_id, nil)
30
33
  executor = Executor.create
31
34
  executor.poll_execution(job_execution)
32
35
  end
@@ -18,11 +18,11 @@ module Barbeque
18
18
  cmd = build_docker_run_command(docker_image, job_execution.job_definition.command, envs)
19
19
  stdout, stderr, status = Open3.capture3(*cmd)
20
20
  if status.success?
21
- job_execution.update!(status: :running)
22
21
  Barbeque::DockerContainer.create!(message_id: job_execution.message_id, container_id: stdout.chomp)
22
+ job_execution.update!(status: :running)
23
23
  else
24
- job_execution.update!(status: :failed, finished_at: Time.zone.now)
25
24
  Barbeque::ExecutionLog.save_stdout_and_stderr(job_execution, stdout, stderr)
25
+ job_execution.update!(status: :failed, finished_at: Time.zone.now)
26
26
  Barbeque::SlackNotifier.notify_job_execution(job_execution)
27
27
  end
28
28
  end
@@ -29,13 +29,13 @@ module Barbeque
29
29
  cmd = build_hako_oneshot_command(docker_image, job_execution.job_definition.command, envs)
30
30
  stdout, stderr, status = Bundler.with_clean_env { Open3.capture3(@hako_env, *cmd, chdir: @hako_dir) }
31
31
  if status.success?
32
- job_execution.update!(status: :running)
33
32
  cluster, task_arn = extract_task_info(stdout)
34
33
  Barbeque::EcsHakoTask.create!(message_id: job_execution.message_id, cluster: cluster, task_arn: task_arn)
35
34
  Barbeque::ExecutionLog.save_stdout_and_stderr(job_execution, stdout, stderr)
35
+ job_execution.update!(status: :running)
36
36
  else
37
- job_execution.update!(status: :failed, finished_at: Time.zone.now)
38
37
  Barbeque::ExecutionLog.save_stdout_and_stderr(job_execution, stdout, stderr)
38
+ job_execution.update!(status: :failed, finished_at: Time.zone.now)
39
39
  Barbeque::SlackNotifier.notify_job_execution(job_execution)
40
40
  end
41
41
  end
@@ -27,6 +27,7 @@ module Barbeque
27
27
  private
28
28
 
29
29
  def poll(job_retry)
30
+ Barbeque::ExceptionHandler.set_message_context(job_retry.message_id, nil)
30
31
  executor = Executor.create
31
32
  executor.poll_retry(job_retry)
32
33
  end
@@ -22,6 +22,7 @@ module Barbeque
22
22
  message = message_queue.dequeue
23
23
  return unless message
24
24
 
25
+ Barbeque::ExceptionHandler.set_message_context(message.id, message.type)
25
26
  handler = MessageHandler.const_get(message.type, false)
26
27
  handler.new(message: message, message_queue: message_queue).run
27
28
  end
@@ -1,3 +1,3 @@
1
1
  module Barbeque
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -1,3 +1,4 @@
1
+ require 'barbeque/exception_handler'
1
2
  require 'barbeque/execution_poller'
2
3
  require 'barbeque/retry_poller'
3
4
  require 'barbeque/runner'
@@ -50,6 +51,7 @@ module Barbeque
50
51
  rescue => e
51
52
  Barbeque::ExceptionHandler.handle_exception(e)
52
53
  end
54
+ Barbeque::ExceptionHandler.clear_context
53
55
  end
54
56
  end
55
57
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barbeque
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-24 00:00:00.000000000 Z
11
+ date: 2017-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: adminlte2-rails