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

Sign up to get free protection for your applications and to get access to all the features.
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