sensu-plugins-consul 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8cbfd06801dfa7ec17a95b3dc869cd9777660517
4
- data.tar.gz: 98ac80d4457224e1b376aded5a5db4c27b16584b
3
+ metadata.gz: 89c6824264dd6958053cf103ed548d0836b01bfb
4
+ data.tar.gz: 262d21085927e5f2ea11c55fdbd25bcb52ee3582
5
5
  SHA512:
6
- metadata.gz: 351289dce2c4c4226c75e0c9e6f68d9e680746d7a43c96076b9ff8360abaa908dcb7bd632505e7642005fdb60b80ae614ab32bceae1ed60442446d42dd8acb70
7
- data.tar.gz: d684a3baec6015298c0847870b17c6c2ccdff8b75516309c4fb0804130071f241ec205cb5f688bc18885751dd2b30040bb8956d09b12d3065e390899d5801068
6
+ metadata.gz: 337a603b5449501304c8f74f77476bc4eea25237915ed89ad01c9d10b4cb5552ac1f04f31a39652e37299118a94291ec40a8601a861a67ecaf47a859c26a6067
7
+ data.tar.gz: e04280e938a3cf61dd3d2b6ea61f3391bab9b9555e3126bff4add91c6d91e1fee4d53d0db8334b372285ce3ce467949a5d71e701d96aa3180880fcd66f7571f4
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -4,6 +4,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
6
  ## Unreleased][unreleased]
7
+ ### Fixed
8
+ - Added check to support removing of failed consul nodes from the cluster
7
9
 
8
10
  ## 0.0.1 - 2015-05-21
9
11
 
@@ -0,0 +1,62 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # OUTPUT:
4
+ # plain text
5
+ #
6
+ # PLATFORMS:
7
+ # Linux
8
+ #
9
+ # DEPENDENCIES:
10
+ # gem: sensu-plugin
11
+ # gem: rest-client
12
+ #
13
+ # Consul returns the numerical values for consul members state, which the
14
+ # numbers used are defined in : https://github.com/hashicorp/serf/blob/master/serf/serf.go
15
+ #
16
+ # StatusNone MemberStatus = iota (0, "none")
17
+ # StatusAlive (1, "alive")
18
+ # StatusLeaving (2, "leaving")
19
+ # StatusLeft (3, "left")
20
+ # StatusFailed (4, "failed")
21
+ #
22
+
23
+ require 'rubygems' if RUBY_VERSION < '1.9.0'
24
+ require 'sensu-plugin/check/cli'
25
+ require 'rest-client'
26
+ require 'json'
27
+
28
+ class ConsulStatus < Sensu::Plugin::Check::CLI
29
+ option :server,
30
+ description: 'consul server',
31
+ short: '-s SERVER',
32
+ long: '--server SERVER',
33
+ default: '127.0.0.1'
34
+
35
+ option :port,
36
+ description: 'consul http port',
37
+ short: '-p PORT',
38
+ long: '--port PORT',
39
+ default: '8500'
40
+
41
+ def run
42
+ r = RestClient::Resource.new("http://#{config[:server]}:#{config[:port]}/v1/agent/members", timeout: 5).get
43
+ if r.code == 200
44
+ failing_nodes = JSON.parse(r).find_all { |node| node['Status'] == 4 }
45
+ if !failing_nodes.nil? && !failing_nodes.empty?
46
+ failing_nodes.each_entry do |node|
47
+ puts "Name: #{node['Name']}"
48
+ RestClient::Resource.new("http://#{config[:server]}:#{config[:port]}/v1/agent/force-leave/#{node['Name']}", timeout: 5).get
49
+ end
50
+ ok 'Removed failed consul nodes'
51
+ else
52
+ ok 'No consul nodes to remove'
53
+ end
54
+ else
55
+ critical 'Consul is not responding'
56
+ end
57
+ rescue Errno::ECONNREFUSED
58
+ critical 'Consul is not responding'
59
+ rescue RestClient::RequestTimeout
60
+ critical 'Consul Connection timed out'
61
+ end
62
+ end
@@ -2,7 +2,7 @@ module SensuPluginsConsul
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 2
5
+ PATCH = 3
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-consul
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu Plugins and contributors
@@ -30,7 +30,7 @@ cert_chain:
30
30
  8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
31
  HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
32
  -----END CERTIFICATE-----
33
- date: 2015-06-03 00:00:00.000000000 Z
33
+ date: 2015-06-27 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: sensu-plugin
@@ -92,14 +92,14 @@ dependencies:
92
92
  name: rubocop
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - "~>"
95
+ - - '='
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0.30'
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - "~>"
102
+ - - '='
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0.30'
105
105
  - !ruby/object:Gem::Dependency
@@ -205,12 +205,14 @@ email: "<sensu-users@googlegroups.com>"
205
205
  executables:
206
206
  - check-service-consul.rb
207
207
  - check-consul-leader.rb
208
+ - check-consul-failures.rb
208
209
  extensions: []
209
210
  extra_rdoc_files: []
210
211
  files:
211
212
  - CHANGELOG.md
212
213
  - LICENSE
213
214
  - README.md
215
+ - bin/check-consul-failures.rb
214
216
  - bin/check-consul-leader.rb
215
217
  - bin/check-service-consul.rb
216
218
  - lib/sensu-plugins-consul.rb
metadata.gz.sig CHANGED
Binary file