diplomat 2.6.1 → 2.6.4

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
  SHA256:
3
- metadata.gz: 3a7d8de13c2c322771e2077560a34336a92744122540db247dc5ee8f4c97a7f1
4
- data.tar.gz: a13421e5a4c9672f8f8410065ee5f4ab38833acc027f8cfb0edc6c2c0bfd30fd
3
+ metadata.gz: a511e72072393dd5a7ae290168917f50e27f13bfa46384ca480840277bd33f22
4
+ data.tar.gz: be98732d7e185789f5d62011d208dbff64088e2634a863d2da3ea9d35f029058
5
5
  SHA512:
6
- metadata.gz: c1f93bed5e1bf7d1ebd3a62dc3fb0a869c34ce774ae0e992bd0efdbb6a0004ab57e757e5e8d850456032c739bc86ae86bbc1e9b1cd3e7a64e8d5635402f7d851
7
- data.tar.gz: 332e033972fc6e8aed716800553edcab761320eea3d2353647102310e199a0eadcdba85a926b2dedbfdc8f4348b7cc3a1d0ed94562dffeacc24251d852d2f698
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)
@@ -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 dc specific query
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 dc specific query
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 dc specific query
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
- def any
75
- state('any')
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
- def passing
80
- state('passing')
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
- def warning
85
- state('warning')
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
- def critical
90
- state('critical')
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
@@ -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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Diplomat
4
- VERSION = '2.6.1'
4
+ VERSION = '2.6.4'
5
5
  end
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.1
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-01-05 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
208
+ version: '3.0'
203
209
  description: Diplomat is a simple wrapper for Consul
204
210
  email:
205
211
  - john@johnhamelink.com