sensu-plugins-supervisor 0.0.3 → 0.0.4

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.
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