sensu-plugins-supervisor 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 47930345517901a5fd2bb82106113cdd4cabdbaa
4
- data.tar.gz: 24be43e29bd8e15557a760129f5a06c85d77f1db
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjdlZjViNzE1Yjg1ZDI0YWFjNjI2YTZjMmQwOTYzN2Q1YzJkMWVhOA==
5
+ data.tar.gz: !binary |-
6
+ MmNiZDZiZWQzMDg0YmIzMGQyNWFiNzM2NjVkZTc5MjViZGY0MTk0MQ==
5
7
  SHA512:
6
- metadata.gz: 4b16b5ddc163d43103beaad2f83b0a7704914c3ee3543e589753569059f3d6c6467399f972ecd9a8bbdd03e5bd69561cae586ffd2459d2a16a49a80f78c87dce
7
- data.tar.gz: fd8772b83647380a6eec37a44f76f293e9634d24c640d84949c12ec2a1424809653fbbd2ba6bad2d8ddc5057bc642427122a76d1a9573755b20bafd93e008cfb
8
+ metadata.gz: !binary |-
9
+ NzZlNjViMWQ1MTZjMDY0YzQ0MjhjZjU2NDU3ZTJlMmFjM2RmNzRlNjdkOGI4
10
+ ZTljODQwMWQ2ZTM3MDRlNzg5ZGMxMGUxZDcwMzA5NTQ3ZGQyZWNkMzgxNTlm
11
+ YTQ3YzI1OWExMmU5MThkMDEwNzM1MzZiNmY1NWZhMGZiMGI0MzQ=
12
+ data.tar.gz: !binary |-
13
+ MDMxNzc4ODJlOTI1NzQxMjM0Zjg1OTUzMjQxZjE2NTcyZGRiNmI4ZTBkMDZi
14
+ MjJiZDZkNzQ0Zjk1ODlkYWE0YzdhZTJlNmVmMTk1ODIzYzFlMzFlNzJiMWQ5
15
+ ZDJjMjZjYmM4NjgwYmVmYTExNTJhMzNjOTU3MGQ2YTM3ZWE3ODY=
data/CHANGELOG.md CHANGED
@@ -3,14 +3,23 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- ## Unreleased][unreleased]
6
+ ## [Unreleased]
7
+
8
+ ## [0.0.4] - 2016-08-17
9
+ ### Changed
10
+ - Updated sensu-plugin dependency from `= 1.2.0` to `~> 1.2.0`
11
+ - Now using built-in xmlrpc parser, removes dependecy on libxml-xmlrpc
12
+ - Failure connecting to supervisor now provides additional exception context
13
+
14
+ ### Added
15
+ - check-supervisor.rb: added support for username and password via http
16
+ - check-supervisor.rb: added support for reporting multiple failed services per run
7
17
 
8
18
  ## [0.0.3] - 2015-07-14
9
19
  ### Changed
10
20
  - updated sensu-plugin gem to 1.2.0
11
21
 
12
22
  ## [0.0.2] - 2015-06-03
13
-
14
23
  ### Fixed
15
24
  - added binstubs
16
25
 
@@ -18,7 +27,10 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
18
27
  - removed cruft from /lib
19
28
 
20
29
  ## 0.0.1 - 2015-05-29
21
-
22
30
  ### Added
23
31
  - initial release
24
32
 
33
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-supervisor/compare/0.0.4...HEAD
34
+ [0.0.4]: https://github.com/sensu-plugins/sensu-plugins-supervisor/compare/0.0.3...0.0.4
35
+ [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-supervisor/compare/0.0.2...0.0.3
36
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-supervisor/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -5,7 +5,6 @@
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-supervisor/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-supervisor)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-supervisor/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-supervisor)
7
7
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-supervisor.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-supervisor)
8
- [![Codeship Status for sensu-plugins/sensu-plugins-supervisor](https://codeship.com/projects/9a0b39d0-e89f-0132-72f9-62885e5c211b/status?branch=master)](https://codeship.com/projects/82850)
9
8
 
10
9
  ## Functionality
11
10
 
@@ -17,6 +16,6 @@
17
16
 
18
17
  ## Installation
19
18
 
20
- [Installation and Setup](https://github.com/sensu-plugins/documentation/blob/master/user_docs/installation_instructions.md)
19
+ [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
21
20
 
22
21
  ## Notes
@@ -29,7 +29,8 @@ require 'sensu-plugin/check/cli'
29
29
 
30
30
  require 'net/http'
31
31
  require 'socket'
32
- require 'xml/libxml/xmlrpc'
32
+ require 'xmlrpc/create'
33
+ require 'xmlrpc/parser'
33
34
 
34
35
  class CheckSupervisorSocket < Sensu::Plugin::Check::CLI
35
36
  option :socket,
@@ -68,15 +69,15 @@ class CheckSupervisorSocket < Sensu::Plugin::Check::CLI
68
69
 
69
70
  begin
70
71
  @super = Net::BufferedIO.new(UNIXSocket.new(config[:socket]))
71
- rescue
72
- critical "Tried to access UNIX domain socket #{config[:socket]} but failed"
72
+ rescue => e
73
+ critical "Tried to access UNIX domain socket #{config[:socket]} but failed: #{e}"
73
74
  end
74
75
 
75
76
  begin
76
77
  request = Net::HTTP::Post.new('/RPC2')
77
78
  request.content_type = 'text/xml'
78
79
  request.basic_auth config[:username], config[:password] if config[:username]
79
- request.body = XML::XMLRPC::Builder.call('supervisor.getAllProcessInfo')
80
+ request.body = XMLRPC::Create.new(XMLRPC::XMLWriter::Simple.new).methodCall('supervisor.getAllProcessInfo')
80
81
  request.exec(@super, '1.1', '/RPC2')
81
82
 
82
83
  # wait for and parse the http response
@@ -87,14 +88,16 @@ class CheckSupervisorSocket < Sensu::Plugin::Check::CLI
87
88
  end
88
89
 
89
90
  response.reading_body(@super, request.response_body_permitted?) {}
91
+ @super.close
92
+
93
+ success, result = XMLRPC::XMLParser::XMLStreamParser.new.parseMethodResponse(response.body)
94
+ raise unless success
90
95
  rescue => e
91
96
  critical "Tried requesting XMLRPC 'supervisor.getAllProcessInfo' from UNIX domain socket #{config[:socket]} but failed: #{e}"
92
97
  end
93
98
 
94
- XML::XMLRPC::Parser.new(response.body).params.each do |param|
95
- param.each do |process|
96
- critical "#{process[:name]} not running: #{process[:statename].upcase}" if config[:critical].include?(process[:statename])
97
- end
99
+ result.each do |process|
100
+ critical "#{process['name']} not running: #{process['statename'].upcase}" if config[:critical].include?(process['statename'])
98
101
  end
99
102
 
100
103
  ok 'All processes running'
@@ -14,7 +14,7 @@
14
14
  #
15
15
  # DEPENDENCIES:
16
16
  # gem: sensu-plugin
17
- # gem: uby-supervisor
17
+ # gem: ruby-supervisor
18
18
  #
19
19
  # USAGE:
20
20
  # check-supervisor-socket.rb
@@ -26,31 +26,42 @@
26
26
 
27
27
  require 'sensu-plugin/check/cli'
28
28
  require 'ruby-supervisor'
29
+ require 'set'
29
30
 
30
31
  class CheckSupervisor < Sensu::Plugin::Check::CLI
31
32
  option :host,
32
33
  description: 'Hostname to check',
33
- short: '-H HOST',
34
- long: '--host HOST',
35
- default: 'localhost'
34
+ short: '-H HOST',
35
+ long: '--host HOST',
36
+ default: 'localhost'
36
37
 
37
38
  option :port,
38
39
  description: 'Supervisor port',
39
- short: '-p PORT',
40
- long: '--port PORT',
41
- default: 9001
40
+ short: '-p PORT',
41
+ long: '--port PORT',
42
+ default: 9001
43
+
44
+ option :username,
45
+ description: 'Supervisor HTTP username',
46
+ short: '-u USERNAME',
47
+ long: '--username USERNAME'
48
+
49
+ option :password,
50
+ description: 'Supervisor HTTP password',
51
+ short: '-p PASSWORD',
52
+ long: '--password PASSWORD'
42
53
 
43
54
  option :critical,
44
55
  description: 'Supervisor states to consider critical',
45
- short: '-c STATE[,STATE...]',
46
- long: '--critical STATE[,STATE...]',
47
- proc: proc { |v| v.upcase.split(',') },
48
- default: ['FATAL']
56
+ short: '-c STATE[,STATE...]',
57
+ long: '--critical STATE[,STATE...]',
58
+ proc: proc { |v| v.upcase.split(',') },
59
+ default: ['FATAL']
49
60
 
50
61
  option :help,
51
62
  description: 'Show this message',
52
- short: '-h',
53
- long: '--help'
63
+ short: '-h',
64
+ long: '--help'
54
65
 
55
66
  def run
56
67
  if config[:help]
@@ -58,16 +69,29 @@ class CheckSupervisor < Sensu::Plugin::Check::CLI
58
69
  exit
59
70
  end
60
71
 
72
+ params = {}
73
+
74
+ if config[:username]
75
+ params[:username] = config[:username]
76
+ end
77
+
78
+ if config[:password]
79
+ params[:password] = config[:password]
80
+ end
81
+
61
82
  begin
62
- @super = RubySupervisor::Client.new(config[:host], config[:port])
63
- rescue
64
- critical "Tried to access #{config[:host]} but failed"
83
+ @super = RubySupervisor::Client.new(config[:host], config[:port], params)
84
+ rescue => e
85
+ critical "Tried to access #{config[:host]} but failed: #{e}"
65
86
  end
66
87
 
88
+ failed_processes = Set.new
67
89
  @super.processes.each do |process|
68
- critical "#{process['name']} not running: #{process['statename'].downcase}" if config[:critical].include?(process['statename'])
90
+ failed_processes << "#{process['name']} not running: #{process['statename'].downcase}" if config[:critical].include?(process['statename'])
69
91
  end
70
92
 
93
+ critical "\n#{failed_processes.to_a.join("\n")}" unless failed_processes.empty?
94
+
71
95
  ok 'All processes running'
72
96
  end # def run
73
97
  end # class CheckSupervisor
@@ -2,7 +2,7 @@ module SensuPluginsSupervisor
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 3
5
+ PATCH = 4
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,51 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-supervisor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
14
- am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
15
- A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
16
- CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
17
- LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
18
- CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
19
- zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
20
- qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
21
- k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
22
- oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
23
- 0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
24
- HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
25
- QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
26
- MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
27
- rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
28
- UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
29
- JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
30
- 8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
- HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
- -----END CERTIFICATE-----
33
- date: 2015-07-14 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-08-18 00:00:00.000000000 Z
34
12
  dependencies:
35
- - !ruby/object:Gem::Dependency
36
- name: libxml-xmlrpc
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - '='
40
- - !ruby/object:Gem::Version
41
- version: 0.1.5
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - '='
47
- - !ruby/object:Gem::Version
48
- version: 0.1.5
49
13
  - !ruby/object:Gem::Dependency
50
14
  name: ruby-supervisor
51
15
  requirement: !ruby/object:Gem::Requirement
@@ -64,147 +28,148 @@ dependencies:
64
28
  name: sensu-plugin
65
29
  requirement: !ruby/object:Gem::Requirement
66
30
  requirements:
67
- - - '='
31
+ - - ~>
68
32
  - !ruby/object:Gem::Version
69
- version: 1.2.0
33
+ version: '1.2'
70
34
  type: :runtime
71
35
  prerelease: false
72
36
  version_requirements: !ruby/object:Gem::Requirement
73
37
  requirements:
74
- - - '='
38
+ - - ~>
75
39
  - !ruby/object:Gem::Version
76
- version: 1.2.0
40
+ version: '1.2'
77
41
  - !ruby/object:Gem::Dependency
78
- name: codeclimate-test-reporter
42
+ name: bundler
79
43
  requirement: !ruby/object:Gem::Requirement
80
44
  requirements:
81
- - - "~>"
45
+ - - ~>
82
46
  - !ruby/object:Gem::Version
83
- version: '0.4'
47
+ version: '1.7'
84
48
  type: :development
85
49
  prerelease: false
86
50
  version_requirements: !ruby/object:Gem::Requirement
87
51
  requirements:
88
- - - "~>"
52
+ - - ~>
89
53
  - !ruby/object:Gem::Version
90
- version: '0.4'
54
+ version: '1.7'
91
55
  - !ruby/object:Gem::Dependency
92
- name: rubocop
56
+ name: codeclimate-test-reporter
93
57
  requirement: !ruby/object:Gem::Requirement
94
58
  requirements:
95
- - - '='
59
+ - - ~>
96
60
  - !ruby/object:Gem::Version
97
- version: '0.30'
61
+ version: '0.4'
98
62
  type: :development
99
63
  prerelease: false
100
64
  version_requirements: !ruby/object:Gem::Requirement
101
65
  requirements:
102
- - - '='
66
+ - - ~>
103
67
  - !ruby/object:Gem::Version
104
- version: '0.30'
68
+ version: '0.4'
105
69
  - !ruby/object:Gem::Dependency
106
- name: rspec
70
+ name: github-markup
107
71
  requirement: !ruby/object:Gem::Requirement
108
72
  requirements:
109
- - - "~>"
73
+ - - ~>
110
74
  - !ruby/object:Gem::Version
111
- version: '3.1'
75
+ version: '1.3'
112
76
  type: :development
113
77
  prerelease: false
114
78
  version_requirements: !ruby/object:Gem::Requirement
115
79
  requirements:
116
- - - "~>"
80
+ - - ~>
117
81
  - !ruby/object:Gem::Version
118
- version: '3.1'
82
+ version: '1.3'
119
83
  - !ruby/object:Gem::Dependency
120
- name: bundler
84
+ name: pry
121
85
  requirement: !ruby/object:Gem::Requirement
122
86
  requirements:
123
- - - "~>"
87
+ - - ~>
124
88
  - !ruby/object:Gem::Version
125
- version: '1.7'
89
+ version: '0.10'
126
90
  type: :development
127
91
  prerelease: false
128
92
  version_requirements: !ruby/object:Gem::Requirement
129
93
  requirements:
130
- - - "~>"
94
+ - - ~>
131
95
  - !ruby/object:Gem::Version
132
- version: '1.7'
96
+ version: '0.10'
133
97
  - !ruby/object:Gem::Dependency
134
98
  name: rake
135
99
  requirement: !ruby/object:Gem::Requirement
136
100
  requirements:
137
- - - "~>"
101
+ - - ~>
138
102
  - !ruby/object:Gem::Version
139
- version: '10.0'
103
+ version: '10.5'
140
104
  type: :development
141
105
  prerelease: false
142
106
  version_requirements: !ruby/object:Gem::Requirement
143
107
  requirements:
144
- - - "~>"
108
+ - - ~>
145
109
  - !ruby/object:Gem::Version
146
- version: '10.0'
110
+ version: '10.5'
147
111
  - !ruby/object:Gem::Dependency
148
- name: github-markup
112
+ name: redcarpet
149
113
  requirement: !ruby/object:Gem::Requirement
150
114
  requirements:
151
- - - "~>"
115
+ - - ~>
152
116
  - !ruby/object:Gem::Version
153
- version: '1.3'
117
+ version: '3.2'
154
118
  type: :development
155
119
  prerelease: false
156
120
  version_requirements: !ruby/object:Gem::Requirement
157
121
  requirements:
158
- - - "~>"
122
+ - - ~>
159
123
  - !ruby/object:Gem::Version
160
- version: '1.3'
124
+ version: '3.2'
161
125
  - !ruby/object:Gem::Dependency
162
- name: redcarpet
126
+ name: rubocop
163
127
  requirement: !ruby/object:Gem::Requirement
164
128
  requirements:
165
- - - "~>"
129
+ - - ~>
166
130
  - !ruby/object:Gem::Version
167
- version: '3.2'
131
+ version: 0.40.0
168
132
  type: :development
169
133
  prerelease: false
170
134
  version_requirements: !ruby/object:Gem::Requirement
171
135
  requirements:
172
- - - "~>"
136
+ - - ~>
173
137
  - !ruby/object:Gem::Version
174
- version: '3.2'
138
+ version: 0.40.0
175
139
  - !ruby/object:Gem::Dependency
176
- name: yard
140
+ name: rspec
177
141
  requirement: !ruby/object:Gem::Requirement
178
142
  requirements:
179
- - - "~>"
143
+ - - ~>
180
144
  - !ruby/object:Gem::Version
181
- version: '0.8'
145
+ version: '3.4'
182
146
  type: :development
183
147
  prerelease: false
184
148
  version_requirements: !ruby/object:Gem::Requirement
185
149
  requirements:
186
- - - "~>"
150
+ - - ~>
187
151
  - !ruby/object:Gem::Version
188
- version: '0.8'
152
+ version: '3.4'
189
153
  - !ruby/object:Gem::Dependency
190
- name: pry
154
+ name: yard
191
155
  requirement: !ruby/object:Gem::Requirement
192
156
  requirements:
193
- - - "~>"
157
+ - - ~>
194
158
  - !ruby/object:Gem::Version
195
- version: '0.10'
159
+ version: '0.8'
196
160
  type: :development
197
161
  prerelease: false
198
162
  version_requirements: !ruby/object:Gem::Requirement
199
163
  requirements:
200
- - - "~>"
164
+ - - ~>
201
165
  - !ruby/object:Gem::Version
202
- version: '0.10'
203
- description: Sensu plugins for working with supervisor
204
- email: "<sensu-users@googlegroups.com>"
166
+ version: '0.8'
167
+ description: ! "This plugin provides native supervisord instrumentation\n for
168
+ monitoring service status"
169
+ email: <sensu-users@googlegroups.com>
205
170
  executables:
206
- - check-supervisor.rb
207
171
  - check-supervisor-socket.rb
172
+ - check-supervisor.rb
208
173
  extensions: []
209
174
  extra_rdoc_files: []
210
175
  files:
@@ -230,17 +195,17 @@ require_paths:
230
195
  - lib
231
196
  required_ruby_version: !ruby/object:Gem::Requirement
232
197
  requirements:
233
- - - ">="
198
+ - - ! '>='
234
199
  - !ruby/object:Gem::Version
235
200
  version: 1.9.3
236
201
  required_rubygems_version: !ruby/object:Gem::Requirement
237
202
  requirements:
238
- - - ">="
203
+ - - ! '>='
239
204
  - !ruby/object:Gem::Version
240
205
  version: '0'
241
206
  requirements: []
242
207
  rubyforge_project:
243
- rubygems_version: 2.4.6
208
+ rubygems_version: 2.4.5
244
209
  signing_key:
245
210
  specification_version: 4
246
211
  summary: Sensu plugins for working with supervisor
checksums.yaml.gz.sig DELETED
Binary file
data.tar.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- �=�����R*��\�%� ����mg��e
2
- �_����$ڠ��Ƥs�ڝ!y��e���j(�PQ�+��a0^t�M�X�$�[�8lBXgp��j#0�1?~�L���]���I�`�L�l}�d��Q9s�l�Ā�c(�9���He����:�6����
metadata.gz.sig DELETED
Binary file