diplomat 2.6.0 → 2.6.3
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 +4 -4
- data/README.md +34 -0
- data/lib/diplomat/health.rb +23 -11
- data/lib/diplomat/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d140133bd3a6e625d15be77e1c851348e71c3a2ebf573d64d7542f1b68e8745
|
4
|
+
data.tar.gz: cb73d392f2a10f9999b43000c52a2064a892c83ba1ed802fc07597ab102bc496
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f223217f2580e3264164c61e9cfe42284714d853a5d111b330b46891cc3ea3348ccf455dd84446e87b67c92043ae0aef9733803be6a9e1446d8412fea4f41eef
|
7
|
+
data.tar.gz: 0d4e0f56a7bc839d1b284a76af995f1a698d092549672ec40c56fd37983d711652c9f4ca671c7d12772d1906147848f272e29cac02cd7c317b4a473c741a2046
|
data/README.md
CHANGED
@@ -331,6 +331,40 @@ Get the health status from autopilot
|
|
331
331
|
Diplomat::Autopilot.get_health()
|
332
332
|
```
|
333
333
|
|
334
|
+
### Health
|
335
|
+
|
336
|
+
Retrieve health of a node
|
337
|
+
|
338
|
+
```ruby
|
339
|
+
Diplomat::Health.node('fooNode', :dc => 'abc')
|
340
|
+
```
|
341
|
+
|
342
|
+
Retrieve health of a given check
|
343
|
+
|
344
|
+
```ruby
|
345
|
+
Diplomat::Health.checks('fooCheck', :dc => 'abc')
|
346
|
+
```
|
347
|
+
|
348
|
+
Retrieve health of a given service
|
349
|
+
|
350
|
+
```ruby
|
351
|
+
Diplomat::Health.service('fooService', :dc => 'abc')
|
352
|
+
```
|
353
|
+
|
354
|
+
Retrieve a list of anything that correspond to the state ("any", "passing", "warning", or "critical")
|
355
|
+
You can use filters too !
|
356
|
+
|
357
|
+
```ruby
|
358
|
+
Diplomat::Health.state("critical", {:dc => 'abc', :filter => 'Node==foo'})
|
359
|
+
```
|
360
|
+
|
361
|
+
You also have some convenience method (`any`, `passing`, `warning`, `critical`)
|
362
|
+
That can be filtered
|
363
|
+
|
364
|
+
```ruby
|
365
|
+
Diplomat::Health.critical({:dc => 'abc', :filter => 'ServiceName==foo'})
|
366
|
+
```
|
367
|
+
|
334
368
|
### Maintenance mode
|
335
369
|
|
336
370
|
Enable maintenance mode on a host, with optional reason and DC (requires access to local agent)
|
data/lib/diplomat/health.rb
CHANGED
@@ -8,11 +8,12 @@ module Diplomat
|
|
8
8
|
|
9
9
|
# Get node health
|
10
10
|
# @param n [String] the node
|
11
|
-
# @param options [Hash] :dc string for
|
11
|
+
# @param options [Hash] :dc, :filter string for specific query
|
12
12
|
# @return [OpenStruct] all data associated with the node
|
13
13
|
def node(n, options = {})
|
14
14
|
custom_params = []
|
15
15
|
custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
|
16
|
+
custom_params << use_named_parameter('filter', options[:filter]) if options[:filter]
|
16
17
|
|
17
18
|
ret = send_get_request(@conn, ["/v1/health/node/#{n}"], options, custom_params)
|
18
19
|
JSON.parse(ret.body).map { |node| OpenStruct.new node }
|
@@ -20,11 +21,12 @@ module Diplomat
|
|
20
21
|
|
21
22
|
# Get service checks
|
22
23
|
# @param s [String] the service
|
23
|
-
# @param options [Hash] :dc string for
|
24
|
+
# @param options [Hash] :dc, :filter string for specific query
|
24
25
|
# @return [OpenStruct] all data associated with the node
|
25
26
|
def checks(s, options = {})
|
26
27
|
custom_params = []
|
27
28
|
custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
|
29
|
+
custom_params << use_named_parameter('filter', options[:filter]) if options[:filter]
|
28
30
|
|
29
31
|
ret = send_get_request(@conn, ["/v1/health/checks/#{s}"], options, custom_params)
|
30
32
|
JSON.parse(ret.body).map { |check| OpenStruct.new check }
|
@@ -44,6 +46,7 @@ module Diplomat
|
|
44
46
|
custom_params << use_named_parameter('near', options[:near]) if options[:near]
|
45
47
|
custom_params << use_named_parameter('node-meta', options[:node_meta]) if options[:node_meta]
|
46
48
|
custom_params << use_named_parameter('index', options[:index]) if options[:index]
|
49
|
+
custom_params << use_named_parameter('filter', options[:filter]) if options[:filter]
|
47
50
|
|
48
51
|
ret = send_get_request(@conn, ["/v1/health/service/#{s}"], options, custom_params)
|
49
52
|
if meta && ret.headers
|
@@ -59,35 +62,44 @@ module Diplomat
|
|
59
62
|
|
60
63
|
# Get service health
|
61
64
|
# @param s [String] the state ("any", "passing", "warning", or "critical")
|
62
|
-
# @param options [Hash] :dc string for
|
65
|
+
# @param options [Hash] :dc, :near, :filter string for specific query
|
63
66
|
# @return [OpenStruct] all data associated with the node
|
64
67
|
def state(s, options = {})
|
65
68
|
custom_params = []
|
66
69
|
custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
|
67
70
|
custom_params << use_named_parameter('near', options[:near]) if options[:near]
|
71
|
+
custom_params << use_named_parameter('filter', options[:filter]) if options[:filter]
|
68
72
|
|
69
73
|
ret = send_get_request(@conn, ["/v1/health/state/#{s}"], options, custom_params)
|
70
74
|
JSON.parse(ret.body).map { |status| OpenStruct.new status }
|
71
75
|
end
|
72
76
|
|
73
77
|
# Convenience method to get services in any state
|
74
|
-
|
75
|
-
|
78
|
+
# @param options [Hash] :dc, :near, :filter string for specific query
|
79
|
+
# @return [OpenStruct] all data associated with the node
|
80
|
+
def any(options = {})
|
81
|
+
state('any', options)
|
76
82
|
end
|
77
83
|
|
78
84
|
# Convenience method to get services in passing state
|
79
|
-
|
80
|
-
|
85
|
+
# @param options [Hash] :dc, :near, :filter string for specific query
|
86
|
+
# @return [OpenStruct] all data associated with the node
|
87
|
+
def passing(options = {})
|
88
|
+
state('passing', options)
|
81
89
|
end
|
82
90
|
|
83
91
|
# Convenience method to get services in warning state
|
84
|
-
|
85
|
-
|
92
|
+
# @param options [Hash] :dc, :near, :filter string for specific query
|
93
|
+
# @return [OpenStruct] all data associated with the node
|
94
|
+
def warning(options = {})
|
95
|
+
state('warning', options)
|
86
96
|
end
|
87
97
|
|
88
98
|
# Convenience method to get services in critical state
|
89
|
-
|
90
|
-
|
99
|
+
# @param options [Hash] :dc, :near, :filter string for specific query
|
100
|
+
# @return [OpenStruct] all data associated with the node
|
101
|
+
def critical(options = {})
|
102
|
+
state('critical', options)
|
91
103
|
end
|
92
104
|
end
|
93
105
|
end
|
data/lib/diplomat/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diplomat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Hamelink
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-07-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -187,6 +187,9 @@ dependencies:
|
|
187
187
|
- - ">="
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '0.9'
|
190
|
+
- - "<"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '2.0'
|
190
193
|
type: :runtime
|
191
194
|
prerelease: false
|
192
195
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -194,6 +197,9 @@ dependencies:
|
|
194
197
|
- - ">="
|
195
198
|
- !ruby/object:Gem::Version
|
196
199
|
version: '0.9'
|
200
|
+
- - "<"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '2.0'
|
197
203
|
description: Diplomat is a simple wrapper for Consul
|
198
204
|
email:
|
199
205
|
- john@johnhamelink.com
|