sensu 0.9.6.beta.5 → 0.9.6.beta.6

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.
data/lib/sensu/api.rb CHANGED
@@ -32,13 +32,29 @@ module Sensu
32
32
  })
33
33
  $redis = Sensu::Redis.connect($settings[:redis])
34
34
  $redis.on_disconnect = Proc.new do
35
- $logger.warn('reconnecting to redis')
36
- $redis.reconnect!
35
+ if $redis.connection_established?
36
+ $logger.warn('reconnecting to redis')
37
+ $redis.reconnect!
38
+ else
39
+ $logger.fatal('cannot connect to redis', {
40
+ :settings => $settings[:redis]
41
+ })
42
+ $logger.fatal('SENSU NOT RUNNING!')
43
+ exit 2
44
+ end
37
45
  end
38
46
  $logger.debug('connecting to rabbitmq', {
39
47
  :settings => $settings[:rabbitmq]
40
48
  })
41
49
  $rabbitmq = AMQP.connect($settings[:rabbitmq])
50
+ $rabbitmq.on_disconnect = Proc.new do
51
+ $logger.fatal('cannot connect to rabbitmq', {
52
+ :settings => $settings[:rabbitmq]
53
+ })
54
+ $logger.fatal('SENSU NOT RUNNING!')
55
+ $redis.close
56
+ exit 2
57
+ end
42
58
  $amq = AMQP::Channel.new($rabbitmq)
43
59
  if $settings[:api][:user] && $settings[:api][:password]
44
60
  use Rack::Auth::Basic do |user, password|
data/lib/sensu/base.rb CHANGED
@@ -10,6 +10,7 @@ require 'cabin'
10
10
  require 'amqp'
11
11
 
12
12
  require File.join(File.dirname(__FILE__), 'patches', 'ruby')
13
+ require File.join(File.dirname(__FILE__), 'patches', 'amqp')
13
14
 
14
15
  require File.join(File.dirname(__FILE__), 'constants')
15
16
  require File.join(File.dirname(__FILE__), 'cli')
data/lib/sensu/client.rb CHANGED
@@ -34,6 +34,13 @@ module Sensu
34
34
  :settings => @settings[:rabbitmq]
35
35
  })
36
36
  @rabbitmq = AMQP.connect(@settings[:rabbitmq])
37
+ @rabbitmq.on_disconnect = Proc.new do
38
+ @logger.fatal('cannot connect to rabbitmq', {
39
+ :settings => @settings[:rabbitmq]
40
+ })
41
+ @logger.fatal('SENSU NOT RUNNING!')
42
+ exit 2
43
+ end
37
44
  @amq = AMQP::Channel.new(@rabbitmq)
38
45
  end
39
46
 
@@ -1,6 +1,6 @@
1
1
  module Sensu
2
2
  unless defined?(Sensu::VERSION)
3
- VERSION = '0.9.6.beta.5'
3
+ VERSION = '0.9.6.beta.6'
4
4
  end
5
5
 
6
6
  unless defined?(Sensu::DEFAULT_OPTIONS)
@@ -0,0 +1,5 @@
1
+ module AMQP
2
+ module Client
3
+ attr_accessor :on_disconnect
4
+ end
5
+ end
data/lib/sensu/redis.rb CHANGED
@@ -4,14 +4,16 @@ module Sensu
4
4
  class Redis < Redis::Client
5
5
  attr_accessor :host, :port, :password, :on_disconnect
6
6
 
7
- def initialize(*args)
7
+ def initialize(*arguments)
8
8
  super
9
9
  @logger = Cabin::Channel.get
10
+ @connection_established = false
10
11
  @connected = false
11
12
  @closing_connection = false
12
13
  end
13
14
 
14
15
  def connection_completed
16
+ @connection_established = true
15
17
  @connected = true
16
18
  if @password
17
19
  auth(@password).callback do |reply|
@@ -49,6 +51,10 @@ module Sensu
49
51
  end
50
52
  end
51
53
 
54
+ def connection_established?
55
+ @connection_established
56
+ end
57
+
52
58
  def connected?
53
59
  @connected
54
60
  end
data/lib/sensu/server.rb CHANGED
@@ -38,8 +38,16 @@ module Sensu
38
38
  @redis = Sensu::Redis.connect(@settings[:redis])
39
39
  unless testing?
40
40
  @redis.on_disconnect = Proc.new do
41
- @logger.fatal('redis connection closed')
42
- stop('TERM')
41
+ if @redis.connection_established?
42
+ @logger.fatal('redis connection closed')
43
+ stop('TERM')
44
+ else
45
+ @logger.fatal('cannot connect to redis', {
46
+ :settings => @settings[:redis]
47
+ })
48
+ @logger.fatal('SENSU NOT RUNNING!')
49
+ exit 2
50
+ end
43
51
  end
44
52
  end
45
53
  end
@@ -49,6 +57,14 @@ module Sensu
49
57
  :settings => @settings[:rabbitmq]
50
58
  })
51
59
  @rabbitmq = AMQP.connect(@settings[:rabbitmq])
60
+ @rabbitmq.on_disconnect = Proc.new do
61
+ @logger.fatal('cannot connect to rabbitmq', {
62
+ :settings => @settings[:rabbitmq]
63
+ })
64
+ @logger.fatal('SENSU NOT RUNNING!')
65
+ @redis.close
66
+ exit 2
67
+ end
52
68
  @amq = AMQP::Channel.new(@rabbitmq)
53
69
  end
54
70
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu
3
3
  version: !ruby/object:Gem::Version
4
- hash: 62196233
4
+ hash: 62196239
5
5
  prerelease: true
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
9
  - 6
10
10
  - beta
11
- - 5
12
- version: 0.9.6.beta.5
11
+ - 6
12
+ version: 0.9.6.beta.6
13
13
  platform: ruby
14
14
  authors:
15
15
  - Sean Porter
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2012-05-25 00:00:00 -07:00
21
+ date: 2012-05-27 00:00:00 -07:00
22
22
  default_executable:
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
@@ -193,6 +193,7 @@ files:
193
193
  - lib/sensu/client.rb
194
194
  - lib/sensu/constants.rb
195
195
  - lib/sensu/logger.rb
196
+ - lib/sensu/patches/amqp.rb
196
197
  - lib/sensu/patches/ruby.rb
197
198
  - lib/sensu/process.rb
198
199
  - lib/sensu/redis.rb