diplomat 0.15.0 → 0.16.0
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 +7 -0
- data/lib/diplomat/health.rb +50 -9
- data/lib/diplomat/kv.rb +6 -2
- data/lib/diplomat/nodes.rb +12 -1
- data/lib/diplomat/service.rb +5 -3
- data/lib/diplomat/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9956fd68674648c7b2644f8d08d154a367ca2e1
|
4
|
+
data.tar.gz: 74a39316e04f1134fa609670a4edb7001dcb6bf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a836986d9eca10c7afed887e8c4b0241e2cbca3ef53c7a144f39563497ded774a754fc71ba647ab80b37dbd72de6fac0c510dc8525bd11071faae9160ede586
|
7
|
+
data.tar.gz: ae779f2691daf74d05e1d96f8a627b42e3a2939145d26f98eb5ea9ea984b142b634be65505f55cb875db46e8d90ab98daccb092140bd04db8791224d7d3d84fa
|
data/README.md
CHANGED
@@ -131,6 +131,13 @@ services = Diplomat::Service.get_all
|
|
131
131
|
# => #<OpenStruct consul=[], foo=[], bar=[]>
|
132
132
|
```
|
133
133
|
|
134
|
+
If you wish to list all the services for a specific datacenter:
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
services = Diplomat::Service.get_all({ :dc => 'My_Datacenter' })
|
138
|
+
# => #<OpenStruct consul=[], foo=[], bar=[]>
|
139
|
+
```
|
140
|
+
|
134
141
|
### Datacenters
|
135
142
|
|
136
143
|
Getting a list of datacenters is quite simple and gives you the option to extract all services out of
|
data/lib/diplomat/health.rb
CHANGED
@@ -8,34 +8,75 @@ 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
12
|
# @return [OpenStruct] all data associated with the node
|
12
|
-
def node n
|
13
|
-
|
13
|
+
def node n, options=nil
|
14
|
+
url = ["/v1/health/node/#{n}"]
|
15
|
+
url << use_named_parameter('dc', options[:dc]) if options and options[:dc]
|
16
|
+
|
17
|
+
# If the request fails, it's probably due to a bad path
|
18
|
+
# so return a PathNotFound error.
|
19
|
+
begin
|
20
|
+
ret = @conn.get concat_url url
|
21
|
+
rescue Faraday::ClientError
|
22
|
+
raise Diplomat::PathNotFound
|
23
|
+
end
|
14
24
|
return JSON.parse(ret.body)
|
15
25
|
end
|
16
26
|
|
17
27
|
# Get service checks
|
18
28
|
# @param s [String] the service
|
29
|
+
# @param options [Hash] :dc string for dc specific query
|
19
30
|
# @return [OpenStruct] all data associated with the node
|
20
|
-
def checks s
|
21
|
-
|
31
|
+
def checks s, options=nil
|
32
|
+
url = ["/v1/health/checks/#{s}"]
|
33
|
+
url << use_named_parameter('dc', options[:dc]) if options and options[:dc]
|
34
|
+
|
35
|
+
# If the request fails, it's probably due to a bad path
|
36
|
+
# so return a PathNotFound error.
|
37
|
+
begin
|
38
|
+
ret = @conn.get concat_url url
|
39
|
+
rescue Faraday::ClientError
|
40
|
+
raise Diplomat::PathNotFound
|
41
|
+
end
|
22
42
|
return JSON.parse(ret.body)
|
23
43
|
end
|
24
44
|
|
25
45
|
# Get service health
|
26
46
|
# @param s [String] the service
|
47
|
+
# @param options [Hash] :dc string for dc specific query
|
27
48
|
# @return [OpenStruct] all data associated with the node
|
28
|
-
def service s
|
29
|
-
|
49
|
+
def service s, options=nil
|
50
|
+
url = ["/v1/health/service/#{s}"]
|
51
|
+
url << use_named_parameter('dc', options[:dc]) if options and options[:dc]
|
52
|
+
|
53
|
+
# If the request fails, it's probably due to a bad path
|
54
|
+
# so return a PathNotFound error.
|
55
|
+
begin
|
56
|
+
ret = @conn.get concat_url url
|
57
|
+
rescue Faraday::ClientError
|
58
|
+
raise Diplomat::PathNotFound
|
59
|
+
end
|
30
60
|
return JSON.parse(ret.body)
|
31
61
|
end
|
32
62
|
|
33
63
|
# Get service health
|
34
64
|
# @param s [String] the state ("unknown", "passing", "warning", or "critical")
|
65
|
+
# @param options [Hash] :dc string for dc specific query
|
35
66
|
# @return [OpenStruct] all data associated with the node
|
36
|
-
def state s
|
37
|
-
|
38
|
-
|
67
|
+
def state s, options=nil
|
68
|
+
url = ["/v1/health/state/#{s}"]
|
69
|
+
url << use_named_parameter('dc', options[:dc]) if options and options[:dc]
|
70
|
+
|
71
|
+
# If the request fails, it's probably due to a bad path
|
72
|
+
# so return a PathNotFound error.
|
73
|
+
begin
|
74
|
+
ret = @conn.get concat_url url
|
75
|
+
rescue Faraday::ClientError
|
76
|
+
raise Diplomat::PathNotFound
|
77
|
+
end
|
78
|
+
return JSON.parse(ret.body)
|
79
|
+
|
39
80
|
end
|
40
81
|
|
41
82
|
# Convenience method to get services in unknown state
|
data/lib/diplomat/kv.rb
CHANGED
@@ -16,6 +16,7 @@ module Diplomat
|
|
16
16
|
# @option options [String] :consistency The read consistency type
|
17
17
|
# @option options [String] :dc Target datacenter
|
18
18
|
# @option options [Boolean] :keys Only return key names.
|
19
|
+
# @option options [Boolean] :modify_index Only return ModifyIndex value.
|
19
20
|
# @option options [String] :separator List only up to a given separator. Only applies when combined with :keys option.
|
20
21
|
# @option options [Boolean] :nil_values If to return keys/dirs with nil values
|
21
22
|
# @param not_found [Symbol] behaviour if the key doesn't exist;
|
@@ -71,6 +72,9 @@ module Diplomat
|
|
71
72
|
when :return
|
72
73
|
@raw = raw
|
73
74
|
parse_body
|
75
|
+
if @options and @options[:modify_index]
|
76
|
+
return @raw.first['ModifyIndex']
|
77
|
+
end
|
74
78
|
return return_value(return_nil_values)
|
75
79
|
when :wait
|
76
80
|
index = raw.headers["x-consul-index"]
|
@@ -136,11 +140,11 @@ module Diplomat
|
|
136
140
|
def dc(options)
|
137
141
|
if options && options[:dc] then use_named_parameter("dc", options[:dc]) else [] end
|
138
142
|
end
|
139
|
-
|
143
|
+
|
140
144
|
def keys(options)
|
141
145
|
if options && options[:keys] == true then ['keys'] else [] end
|
142
146
|
end
|
143
|
-
|
147
|
+
|
144
148
|
def separator(options)
|
145
149
|
if options && options[:separator] then use_named_parameter("separator", options[:separator]) else [] end
|
146
150
|
end
|
data/lib/diplomat/nodes.rb
CHANGED
@@ -3,7 +3,7 @@ require 'faraday'
|
|
3
3
|
|
4
4
|
module Diplomat
|
5
5
|
class Nodes < Diplomat::RestClient
|
6
|
-
@access_methods = [ :get ]
|
6
|
+
@access_methods = [ :get, :get_all ]
|
7
7
|
|
8
8
|
# Get all nodes
|
9
9
|
# @deprecated Please use Diplomat::Node instead.
|
@@ -12,5 +12,16 @@ module Diplomat
|
|
12
12
|
ret = @conn.get "/v1/catalog/nodes"
|
13
13
|
return JSON.parse(ret.body)
|
14
14
|
end
|
15
|
+
|
16
|
+
def get_all options=nil
|
17
|
+
url = ["/v1/catalog/nodes"]
|
18
|
+
url << use_named_parameter('dc', options[:dc]) if options and options[:dc]
|
19
|
+
begin
|
20
|
+
ret = @conn.get concat_url url
|
21
|
+
rescue Faraday::ClientError
|
22
|
+
raise Diplomat::PathNotFound
|
23
|
+
end
|
24
|
+
return JSON.parse(ret.body).map { |service| OpenStruct.new service }
|
25
|
+
end
|
15
26
|
end
|
16
27
|
end
|
data/lib/diplomat/service.rb
CHANGED
@@ -42,11 +42,13 @@ module Diplomat
|
|
42
42
|
end
|
43
43
|
|
44
44
|
# Get all the services
|
45
|
+
# @param options [Hash] :dc Consul datacenter to query
|
45
46
|
# @return [OpenStruct] the list of all services
|
46
|
-
def get_all
|
47
|
-
url = "/v1/catalog/services"
|
47
|
+
def get_all options=nil
|
48
|
+
url = ["/v1/catalog/services"]
|
49
|
+
url << use_named_parameter('dc', options[:dc]) if options and options[:dc]
|
48
50
|
begin
|
49
|
-
ret = @conn.get url
|
51
|
+
ret = @conn.get concat_url url
|
50
52
|
rescue Faraday::ClientError
|
51
53
|
raise Diplomat::PathNotFound
|
52
54
|
end
|
data/lib/diplomat/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diplomat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Hamelink
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
214
|
version: '0'
|
215
215
|
requirements: []
|
216
216
|
rubyforge_project:
|
217
|
-
rubygems_version: 2.
|
217
|
+
rubygems_version: 2.5.1
|
218
218
|
signing_key:
|
219
219
|
specification_version: 4
|
220
220
|
summary: Diplomat is a simple wrapper for Consul
|