sensu-plugin 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require 'sensu/config'
2
3
 
3
4
  module Sensu
4
5
  class Handler
@@ -36,6 +37,19 @@ module Sensu
36
37
  end
37
38
  end
38
39
 
40
+ # Unfortunately, we need to reimplement config loading. I'm not sure there's
41
+ # a good way to allow overriding these paths.
42
+
43
+ CONFIGS = ['/etc/sensu/config.json'] + Dir['/etc/sensu/conf.d/*.json']
44
+
45
+ def load_config(filename)
46
+ JSON.parse(File.open(filename, 'r').read) rescue Hash.new
47
+ end
48
+
49
+ def settings
50
+ @settings ||= CONFIGS.map {|f| load_config(f) }.reduce {|a, b| a.deep_merge(b) }
51
+ end
52
+
39
53
  at_exit do
40
54
  handler = @@autorun.new
41
55
  event = ::JSON.parse(STDIN.read)
@@ -46,3 +60,14 @@ module Sensu
46
60
 
47
61
  end
48
62
  end
63
+
64
+ # Copied from Sensu (0.8.19)
65
+
66
+ class Hash
67
+ def deep_merge(hash)
68
+ merger = proc do |key, value1, value2|
69
+ value1.is_a?(Hash) && value2.is_a?(Hash) ? value1.merge(value2, &merger) : value2
70
+ end
71
+ self.merge(hash, &merger)
72
+ end
73
+ end
@@ -1,6 +1,6 @@
1
1
  module Sensu
2
2
  module Plugin
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.3"
4
4
  EXIT_CODES = {
5
5
  'OK' => 0,
6
6
  'WARNING' => 1,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-15 00:00:00.000000000 Z
12
+ date: 2011-12-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &70296568612360 !ruby/object:Gem::Requirement
16
+ requirement: &70160334903060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70296568612360
24
+ version_requirements: *70160334903060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mixlib-cli
27
- requirement: &70296568611860 !ruby/object:Gem::Requirement
27
+ requirement: &70160334902480 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 1.1.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70296568611860
35
+ version_requirements: *70160334902480
36
36
  description: Plugins and helper libraries for Sensu, a monitoring framework
37
37
  email:
38
38
  - decklin@red-bean.com