diplomat 2.6.1 → 2.6.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 +4 -4
- data/README.md +41 -0
- data/lib/diplomat/health.rb +23 -11
- data/lib/diplomat/service.rb +1 -0
- data/lib/diplomat/version.rb +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a511e72072393dd5a7ae290168917f50e27f13bfa46384ca480840277bd33f22
|
4
|
+
data.tar.gz: be98732d7e185789f5d62011d208dbff64088e2634a863d2da3ea9d35f029058
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ab4b6033d60b9a9930da3736e105980da473cf186e289db808d0eb5d8bc964d2712fec70711c3d918a84968696ea1ea1a51926e0c41aa663971d4e3825988eb
|
7
|
+
data.tar.gz: 6df7409db9894e31b74d764354c305a70997eef07053d9369756d1572be004239c3268f8d79842116e5d6e8a962e3c21ef97b6c43bcefdaf9898a38735605ce0
|
data/README.md
CHANGED
@@ -196,6 +196,13 @@ foo_service = Diplomat::Service.get('foo', :all, { :dc => 'My_Datacenter'})
|
|
196
196
|
# => [#<OpenStruct Node="hotel", Address="1.2.3.4", ServiceID="hotel_foo", ServiceName="foo", ServiceTags=["foo"], ServicePort=5432>,#<OpenStruct Node="indigo", Address="1.2.3.5", ServiceID="indigo_foo", ServiceName="foo", ServiceTags=["foo"], ServicePort=5432>]
|
197
197
|
```
|
198
198
|
|
199
|
+
Or if you want to filter services
|
200
|
+
|
201
|
+
```ruby
|
202
|
+
foo_service = Diplomat::Service.get('foo', :all, { :filter => 'ServiceID == "indigo_foo"'})
|
203
|
+
# => [#<OpenStruct Node="indigo", Address="1.2.3.5", ServiceID="indigo_foo", ServiceName="foo", ServiceTags=["foo"], ServicePort=5432>]
|
204
|
+
```
|
205
|
+
|
199
206
|
If you wish to list all the services on consul:
|
200
207
|
|
201
208
|
```ruby
|
@@ -331,6 +338,40 @@ Get the health status from autopilot
|
|
331
338
|
Diplomat::Autopilot.get_health()
|
332
339
|
```
|
333
340
|
|
341
|
+
### Health
|
342
|
+
|
343
|
+
Retrieve health of a node
|
344
|
+
|
345
|
+
```ruby
|
346
|
+
Diplomat::Health.node('fooNode', :dc => 'abc')
|
347
|
+
```
|
348
|
+
|
349
|
+
Retrieve health of a given check
|
350
|
+
|
351
|
+
```ruby
|
352
|
+
Diplomat::Health.checks('fooCheck', :dc => 'abc')
|
353
|
+
```
|
354
|
+
|
355
|
+
Retrieve health of a given service
|
356
|
+
|
357
|
+
```ruby
|
358
|
+
Diplomat::Health.service('fooService', :dc => 'abc')
|
359
|
+
```
|
360
|
+
|
361
|
+
Retrieve a list of anything that correspond to the state ("any", "passing", "warning", or "critical")
|
362
|
+
You can use filters too !
|
363
|
+
|
364
|
+
```ruby
|
365
|
+
Diplomat::Health.state("critical", {:dc => 'abc', :filter => 'Node==foo'})
|
366
|
+
```
|
367
|
+
|
368
|
+
You also have some convenience method (`any`, `passing`, `warning`, `critical`)
|
369
|
+
That can be filtered
|
370
|
+
|
371
|
+
```ruby
|
372
|
+
Diplomat::Health.critical({:dc => 'abc', :filter => 'ServiceName==foo'})
|
373
|
+
```
|
374
|
+
|
334
375
|
### Maintenance mode
|
335
376
|
|
336
377
|
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/service.rb
CHANGED
@@ -17,6 +17,7 @@ module Diplomat
|
|
17
17
|
custom_params << use_named_parameter('wait', options[:wait]) if options[:wait]
|
18
18
|
custom_params << use_named_parameter('index', options[:index]) if options[:index]
|
19
19
|
custom_params << use_named_parameter('dc', options[:dc]) if options[:dc]
|
20
|
+
custom_params << use_named_parameter('filter', options[:filter]) if options[:filter]
|
20
21
|
custom_params += [*options[:tag]].map { |value| use_named_parameter('tag', value) } if options[:tag]
|
21
22
|
|
22
23
|
ret = send_get_request(@conn, ["/v1/catalog/service/#{key}"], options, custom_params)
|
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.4
|
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: 2022-
|
13
|
+
date: 2022-08-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -187,9 +187,12 @@ dependencies:
|
|
187
187
|
- - ">="
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '0.9'
|
190
|
+
- - "!="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 2.0.0
|
190
193
|
- - "<"
|
191
194
|
- !ruby/object:Gem::Version
|
192
|
-
version: '
|
195
|
+
version: '3.0'
|
193
196
|
type: :runtime
|
194
197
|
prerelease: false
|
195
198
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -197,9 +200,12 @@ dependencies:
|
|
197
200
|
- - ">="
|
198
201
|
- !ruby/object:Gem::Version
|
199
202
|
version: '0.9'
|
203
|
+
- - "!="
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: 2.0.0
|
200
206
|
- - "<"
|
201
207
|
- !ruby/object:Gem::Version
|
202
|
-
version: '
|
208
|
+
version: '3.0'
|
203
209
|
description: Diplomat is a simple wrapper for Consul
|
204
210
|
email:
|
205
211
|
- john@johnhamelink.com
|