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 +18 -2
- data/lib/sensu/base.rb +1 -0
- data/lib/sensu/client.rb +7 -0
- data/lib/sensu/constants.rb +1 -1
- data/lib/sensu/patches/amqp.rb +5 -0
- data/lib/sensu/redis.rb +7 -1
- data/lib/sensu/server.rb +18 -2
- metadata +5 -4
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
|
-
$
|
36
|
-
|
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
|
|
data/lib/sensu/constants.rb
CHANGED
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(*
|
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
|
-
@
|
42
|
-
|
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:
|
4
|
+
hash: 62196239
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
9
|
- 6
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 0.9.6.beta.
|
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-
|
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
|