diplomat 2.0.2 → 2.0.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 +5 -5
- data/README.md +3 -5
- data/lib/diplomat.rb +4 -4
- data/lib/diplomat/acl.rb +0 -2
- data/lib/diplomat/configuration.rb +5 -2
- data/lib/diplomat/event.rb +0 -2
- data/lib/diplomat/kv.rb +12 -5
- data/lib/diplomat/lock.rb +0 -2
- data/lib/diplomat/maintenance.rb +1 -0
- data/lib/diplomat/node.rb +0 -2
- data/lib/diplomat/query.rb +0 -2
- data/lib/diplomat/rest_client.rb +62 -4
- data/lib/diplomat/service.rb +6 -5
- data/lib/diplomat/version.rb +1 -1
- metadata +37 -52
- data/lib/diplomat/api_options.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: df1251c77ca0e65f2e2b046a8f5c9c596a165fe08f382051f4b71646cd455f10
|
4
|
+
data.tar.gz: 5f53957806d93db43c1d8c0fae7497a07c8f62e1fcb2cc07d1608274b52436f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02d8ac73def0d239a67bb809870689f22708bac587b4820583d6bff0d0bc8c82326667cf9e9b1f2a496d4930a777e53cc80d9395c1e7198f62ce9bce0366011e
|
7
|
+
data.tar.gz: 6b5736c9f3d33df4686356e2baadebb41caf51cce148442f6a94a2440478fae0400de6f961e1a9b282736845cec6b97b3fa13ac6d2c90a6557d3ee40e6c6f8b3
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Diplomat
|
2
|
-
[](http://badge.fury.io/rb/diplomat) [](https://rubygems.org/gems/diplomat/versions/2.0.0) [](https://travis-ci.org/WeAreFarmGeek/diplomat) [](http://badge.fury.io/rb/diplomat) [](https://rubygems.org/gems/diplomat/versions/2.0.0) [](https://travis-ci.org/WeAreFarmGeek/diplomat) [](https://codeclimate.com/github/WeAreFarmGeek/diplomat) [](http://inch-ci.org/github/wearefarmgeek/diplomat)
|
3
3
|
### A HTTP Ruby API for [Consul](http://www.consul.io/)
|
4
4
|
|
5
5
|

|
@@ -310,10 +310,8 @@ Diplomat.configure do |config|
|
|
310
310
|
config.url = "http://localhost:8888"
|
311
311
|
# Set up a custom Faraday Middleware
|
312
312
|
config.middleware = MyCustomMiddleware
|
313
|
-
#
|
314
|
-
config.
|
315
|
-
# Set extra Faraday configuration options
|
316
|
-
config.options = {ssl: { version: :TLSv1_2 }}
|
313
|
+
# Set extra Faraday configuration options and custom access token (ACL)
|
314
|
+
config.options = {ssl: {version: :TLSv1_2}, headers: {"X-Consul-Token" => "xxxxxxxx-yyyy-zzzz-1111-222222222222"}}
|
317
315
|
end
|
318
316
|
```
|
319
317
|
|
data/lib/diplomat.rb
CHANGED
@@ -23,11 +23,11 @@ module Diplomat
|
|
23
23
|
|
24
24
|
raise 'Diplomat only supports ruby >= 2.0.0' unless RUBY_VERSION.to_f >= 2.0
|
25
25
|
|
26
|
-
self.root_path = File.expand_path
|
27
|
-
self.lib_path = File.expand_path '
|
26
|
+
self.root_path = File.expand_path __dir__
|
27
|
+
self.lib_path = File.expand_path 'diplomat', __dir__
|
28
28
|
|
29
|
-
require_libs 'configuration', 'rest_client', '
|
30
|
-
'
|
29
|
+
require_libs 'configuration', 'rest_client', 'kv', 'datacenter', 'service',
|
30
|
+
'members', 'node', 'nodes', 'check', 'health', 'session', 'lock',
|
31
31
|
'error', 'event', 'acl', 'maintenance', 'query', 'agent', 'status'
|
32
32
|
self.configuration ||= Diplomat::Configuration.new
|
33
33
|
|
data/lib/diplomat/acl.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Diplomat
|
2
2
|
# Methods for configuring Diplomat
|
3
3
|
class Configuration
|
4
|
-
|
4
|
+
attr_reader :middleware
|
5
5
|
attr_accessor :url, :acl_token, :options
|
6
6
|
|
7
7
|
# Override defaults for configuration
|
@@ -18,7 +18,10 @@ module Diplomat
|
|
18
18
|
# Define a middleware for Faraday
|
19
19
|
# @param middleware [Class] Faraday Middleware class
|
20
20
|
def middleware=(middleware)
|
21
|
-
|
21
|
+
if middleware.is_a? Array
|
22
|
+
@middleware = middleware
|
23
|
+
return
|
24
|
+
end
|
22
25
|
@middleware = [middleware]
|
23
26
|
end
|
24
27
|
end
|
data/lib/diplomat/event.rb
CHANGED
data/lib/diplomat/kv.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
module Diplomat
|
2
2
|
# Methods for interacting with the Consul KV API endpoint
|
3
3
|
class Kv < Diplomat::RestClient
|
4
|
-
include ApiOptions
|
5
|
-
|
6
4
|
@access_methods = %i[get put delete txn]
|
7
5
|
attr_reader :key, :value, :raw
|
8
6
|
|
@@ -80,6 +78,7 @@ module Diplomat
|
|
80
78
|
return @raw.first['Session'] if @options && @options[:session]
|
81
79
|
return decode_values if @options && @options[:decode_values]
|
82
80
|
return convert_to_hash(return_value(return_nil_values, transformation, true)) if @options && @options[:convert_to_hash]
|
81
|
+
|
83
82
|
return return_value(return_nil_values, transformation)
|
84
83
|
when :wait
|
85
84
|
index = raw.headers['x-consul-index']
|
@@ -204,6 +203,7 @@ module Diplomat
|
|
204
203
|
|
205
204
|
def transaction_consistency(options)
|
206
205
|
return [] unless options
|
206
|
+
|
207
207
|
if options[:consistency] && options[:consistency] == 'stale'
|
208
208
|
['stale']
|
209
209
|
elsif options[:consistency] && options[:consistency] == 'consistent'
|
@@ -215,6 +215,7 @@ module Diplomat
|
|
215
215
|
|
216
216
|
def transaction_verification(transaction)
|
217
217
|
raise Diplomat::InvalidTransaction unless transaction.is_a?(Array)
|
218
|
+
|
218
219
|
transaction.each do |req|
|
219
220
|
raise Diplomat::InvalidTransaction unless transaction_type_verification(req)
|
220
221
|
raise Diplomat::InvalidTransaction unless transaction_verb_verification(req['KV'])
|
@@ -230,6 +231,7 @@ module Diplomat
|
|
230
231
|
def transaction_verb_verification(txn)
|
231
232
|
transaction_verb = txn['Verb']
|
232
233
|
raise Diplomat::InvalidTransaction unless valid_transaction_verbs.include? transaction_verb
|
234
|
+
|
233
235
|
test_requirements = valid_transaction_verbs[transaction_verb] - txn.keys
|
234
236
|
test_requirements.empty?
|
235
237
|
end
|
@@ -237,6 +239,7 @@ module Diplomat
|
|
237
239
|
def encode_transaction(transaction)
|
238
240
|
transaction.each do |txn|
|
239
241
|
next unless valid_value_transactions.include? txn['KV']['Verb']
|
242
|
+
|
240
243
|
value = txn['KV']['Value']
|
241
244
|
txn['KV']['Value'] = Base64.encode64(value).chomp
|
242
245
|
end
|
@@ -248,14 +251,18 @@ module Diplomat
|
|
248
251
|
OpenStruct.new decoded_return
|
249
252
|
end
|
250
253
|
|
251
|
-
def decode_transaction(transaction)
|
254
|
+
def decode_transaction(transaction) # rubocop:disable Metrics/MethodLength
|
252
255
|
return transaction if transaction['Results'].nil? || transaction['Results'].empty?
|
253
256
|
|
254
257
|
transaction.tap do |txn|
|
255
258
|
txn['Results'].each do |resp|
|
256
259
|
next unless resp['KV']['Value']
|
257
|
-
|
258
|
-
|
260
|
+
|
261
|
+
begin
|
262
|
+
resp['KV']['Value'] = Base64.decode64(resp['KV']['Value'])
|
263
|
+
rescue StandardError
|
264
|
+
nil
|
265
|
+
end
|
259
266
|
end
|
260
267
|
end
|
261
268
|
end
|
data/lib/diplomat/lock.rb
CHANGED
data/lib/diplomat/maintenance.rb
CHANGED
data/lib/diplomat/node.rb
CHANGED
data/lib/diplomat/query.rb
CHANGED
data/lib/diplomat/rest_client.rb
CHANGED
@@ -2,13 +2,22 @@ module Diplomat
|
|
2
2
|
# Base class for interacting with the Consul RESTful API
|
3
3
|
class RestClient
|
4
4
|
@access_methods = []
|
5
|
+
@configuration = nil
|
5
6
|
|
6
7
|
# Initialize the fadaray connection
|
7
8
|
# @param api_connection [Faraday::Connection,nil] supply mock API Connection
|
8
|
-
|
9
|
+
# @param configuration [Diplomat::Configuration] a dedicated config to use
|
10
|
+
def initialize(api_connection = nil, configuration: nil)
|
11
|
+
@configuration = configuration
|
9
12
|
start_connection api_connection
|
10
13
|
end
|
11
14
|
|
15
|
+
# Get client configuration or global one if not specified via initialize.
|
16
|
+
# @return [Diplomat::Configuration] used by this client
|
17
|
+
def configuration
|
18
|
+
@configuration || ::Diplomat.configuration
|
19
|
+
end
|
20
|
+
|
12
21
|
# Format url parameters into strings correctly
|
13
22
|
# @param name [String] the name of the parameter
|
14
23
|
# @param value [String] the value of the parameter
|
@@ -80,8 +89,8 @@ module Diplomat
|
|
80
89
|
end
|
81
90
|
|
82
91
|
def build_connection(api_connection, raise_error = false)
|
83
|
-
api_connection || Faraday.new(
|
84
|
-
|
92
|
+
api_connection || Faraday.new(configuration.url, configuration.options) do |faraday|
|
93
|
+
configuration.middleware.each do |middleware|
|
85
94
|
faraday.use middleware
|
86
95
|
end
|
87
96
|
|
@@ -134,14 +143,20 @@ module Diplomat
|
|
134
143
|
# Parse the body, apply it to the raw attribute
|
135
144
|
def parse_body
|
136
145
|
return JSON.parse(@raw.body) if @raw.status == 200
|
146
|
+
|
137
147
|
raise Diplomat::UnknownStatus, "status #{@raw.status}: #{@raw.body}"
|
138
148
|
end
|
139
149
|
|
140
150
|
# Return @raw with Value fields decoded
|
141
151
|
def decode_values
|
142
152
|
return @raw if @raw.first.is_a? String
|
153
|
+
|
143
154
|
@raw.each_with_object([]) do |acc, el|
|
144
|
-
|
155
|
+
begin
|
156
|
+
acc['Value'] = Base64.decode64(acc['Value'])
|
157
|
+
rescue StandardError
|
158
|
+
nil
|
159
|
+
end
|
145
160
|
el << acc
|
146
161
|
el
|
147
162
|
end
|
@@ -152,6 +167,7 @@ module Diplomat
|
|
152
167
|
def return_value(nil_values = false, transformation = nil, return_hash = false)
|
153
168
|
@value = decode_values
|
154
169
|
return @value if @value.first.is_a? String
|
170
|
+
|
155
171
|
if @value.count == 1 && !return_hash
|
156
172
|
@value = @value.first['Value']
|
157
173
|
@value = transformation.call(@value) if transformation && !@value.nil?
|
@@ -172,5 +188,47 @@ module Diplomat
|
|
172
188
|
payload: (Base64.decode64(e['Payload']) unless e['Payload'].nil?) }
|
173
189
|
end
|
174
190
|
end
|
191
|
+
|
192
|
+
def check_acl_token
|
193
|
+
use_named_parameter('token', configuration.acl_token)
|
194
|
+
end
|
195
|
+
|
196
|
+
def use_cas(options)
|
197
|
+
options ? use_named_parameter('cas', options[:cas]) : []
|
198
|
+
end
|
199
|
+
|
200
|
+
def use_consistency(options)
|
201
|
+
options && options[:consistency] ? [options[:consistency].to_s] : []
|
202
|
+
end
|
203
|
+
|
204
|
+
# Mapping for valid key/value store transaction verbs and required parameters
|
205
|
+
#
|
206
|
+
# @return [Hash] valid key/store transaction verbs and required parameters
|
207
|
+
# rubocop:disable MethodLength
|
208
|
+
def valid_transaction_verbs
|
209
|
+
{
|
210
|
+
'set' => %w[Key Value],
|
211
|
+
'cas' => %w[Key Value Index],
|
212
|
+
'lock' => %w[Key Value Session],
|
213
|
+
'unlock' => %w[Key Value Session],
|
214
|
+
'get' => %w[Key],
|
215
|
+
'get-tree' => %w[Key],
|
216
|
+
'check-index' => %w[Key Index],
|
217
|
+
'check-session' => %w[Key Session],
|
218
|
+
'delete' => %w[Key],
|
219
|
+
'delete-tree' => %w[Key],
|
220
|
+
'delete-cas' => %w[Key Index]
|
221
|
+
}
|
222
|
+
end
|
223
|
+
# rubocop:enable MethodLength
|
224
|
+
|
225
|
+
# Key/value store transactions that require that a value be set
|
226
|
+
#
|
227
|
+
# @return [Array<String>] verbs that require a value be set
|
228
|
+
def valid_value_transactions
|
229
|
+
@valid_value_transactions ||= valid_transaction_verbs.select do |verb, requires|
|
230
|
+
verb if requires.include? 'Value'
|
231
|
+
end
|
232
|
+
end
|
175
233
|
end
|
176
234
|
end
|
data/lib/diplomat/service.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
module Diplomat
|
2
2
|
# Methods for interacting with the Consul serivce API endpoint.
|
3
3
|
class Service < Diplomat::RestClient
|
4
|
-
include ApiOptions
|
5
|
-
|
6
4
|
@access_methods = %i[get get_all register deregister register_external deregister_external maintenance]
|
7
5
|
|
8
6
|
# Get a service by it's key
|
@@ -66,8 +64,10 @@ module Diplomat
|
|
66
64
|
# @param definition [Hash] Hash containing definition of service
|
67
65
|
# @return [Boolean]
|
68
66
|
def register(definition, path = '/v1/agent/service/register')
|
67
|
+
url = [path]
|
68
|
+
url += check_acl_token
|
69
69
|
json_definition = JSON.dump(definition)
|
70
|
-
register = @conn.put
|
70
|
+
register = @conn.put concat_url(url), json_definition
|
71
71
|
register.status == 200
|
72
72
|
end
|
73
73
|
|
@@ -75,7 +75,9 @@ module Diplomat
|
|
75
75
|
# @param service_name [String] Service name to de-register
|
76
76
|
# @return [Boolean]
|
77
77
|
def deregister(service_name)
|
78
|
-
|
78
|
+
url = ["/v1/agent/service/deregister/#{service_name}"]
|
79
|
+
url += check_acl_token
|
80
|
+
deregister = @conn.put concat_url(url)
|
79
81
|
deregister.status == 200
|
80
82
|
end
|
81
83
|
|
@@ -113,6 +115,5 @@ module Diplomat
|
|
113
115
|
end
|
114
116
|
maintenance.status == 200
|
115
117
|
end
|
116
|
-
# rubocop:enable AbcSize
|
117
118
|
end
|
118
119
|
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.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Hamelink
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-02-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -17,56 +17,48 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - "~>"
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: '1.3'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: rake
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - "~>"
|
20
|
+
version: '2.0'
|
21
|
+
- - ">="
|
33
22
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
23
|
+
version: 2.0.1
|
35
24
|
type: :development
|
36
25
|
prerelease: false
|
37
26
|
version_requirements: !ruby/object:Gem::Requirement
|
38
27
|
requirements:
|
39
28
|
- - "~>"
|
40
29
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
30
|
+
version: '2.0'
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.1
|
42
34
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
35
|
+
name: codeclimate-test-reporter
|
44
36
|
requirement: !ruby/object:Gem::Requirement
|
45
37
|
requirements:
|
46
38
|
- - "~>"
|
47
39
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
40
|
+
version: 0.4.0
|
49
41
|
type: :development
|
50
42
|
prerelease: false
|
51
43
|
version_requirements: !ruby/object:Gem::Requirement
|
52
44
|
requirements:
|
53
45
|
- - "~>"
|
54
46
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
47
|
+
version: 0.4.0
|
56
48
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
49
|
+
name: cucumber
|
58
50
|
requirement: !ruby/object:Gem::Requirement
|
59
51
|
requirements:
|
60
52
|
- - "~>"
|
61
53
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
54
|
+
version: '2.0'
|
63
55
|
type: :development
|
64
56
|
prerelease: false
|
65
57
|
version_requirements: !ruby/object:Gem::Requirement
|
66
58
|
requirements:
|
67
59
|
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
61
|
+
version: '2.0'
|
70
62
|
- !ruby/object:Gem::Dependency
|
71
63
|
name: fakes-rspec
|
72
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,95 +74,89 @@ dependencies:
|
|
82
74
|
- !ruby/object:Gem::Version
|
83
75
|
version: '2.1'
|
84
76
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
77
|
+
name: fivemat
|
86
78
|
requirement: !ruby/object:Gem::Requirement
|
87
79
|
requirements:
|
88
80
|
- - "~>"
|
89
81
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
82
|
+
version: '1.3'
|
91
83
|
type: :development
|
92
84
|
prerelease: false
|
93
85
|
version_requirements: !ruby/object:Gem::Requirement
|
94
86
|
requirements:
|
95
87
|
- - "~>"
|
96
88
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
89
|
+
version: '1.3'
|
98
90
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
91
|
+
name: gem-release
|
100
92
|
requirement: !ruby/object:Gem::Requirement
|
101
93
|
requirements:
|
102
94
|
- - "~>"
|
103
95
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
96
|
+
version: '0.7'
|
105
97
|
type: :development
|
106
98
|
prerelease: false
|
107
99
|
version_requirements: !ruby/object:Gem::Requirement
|
108
100
|
requirements:
|
109
101
|
- - "~>"
|
110
102
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
103
|
+
version: '0.7'
|
112
104
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
105
|
+
name: pry
|
114
106
|
requirement: !ruby/object:Gem::Requirement
|
115
107
|
requirements:
|
116
108
|
- - "~>"
|
117
109
|
- !ruby/object:Gem::Version
|
118
|
-
version: '0.
|
110
|
+
version: '0.9'
|
119
111
|
type: :development
|
120
112
|
prerelease: false
|
121
113
|
version_requirements: !ruby/object:Gem::Requirement
|
122
114
|
requirements:
|
123
115
|
- - "~>"
|
124
116
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0.
|
117
|
+
version: '0.9'
|
126
118
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
119
|
+
name: rake
|
128
120
|
requirement: !ruby/object:Gem::Requirement
|
129
121
|
requirements:
|
130
122
|
- - "~>"
|
131
123
|
- !ruby/object:Gem::Version
|
132
|
-
version: '
|
124
|
+
version: '12.0'
|
133
125
|
type: :development
|
134
126
|
prerelease: false
|
135
127
|
version_requirements: !ruby/object:Gem::Requirement
|
136
128
|
requirements:
|
137
129
|
- - "~>"
|
138
130
|
- !ruby/object:Gem::Version
|
139
|
-
version: '
|
131
|
+
version: '12.0'
|
140
132
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
133
|
+
name: rspec
|
142
134
|
requirement: !ruby/object:Gem::Requirement
|
143
135
|
requirements:
|
144
136
|
- - "~>"
|
145
137
|
- !ruby/object:Gem::Version
|
146
|
-
version: '
|
147
|
-
- - ">="
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: 0.47.1
|
138
|
+
version: '3.2'
|
150
139
|
type: :development
|
151
140
|
prerelease: false
|
152
141
|
version_requirements: !ruby/object:Gem::Requirement
|
153
142
|
requirements:
|
154
143
|
- - "~>"
|
155
144
|
- !ruby/object:Gem::Version
|
156
|
-
version: '
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: 0.47.1
|
145
|
+
version: '3.2'
|
160
146
|
- !ruby/object:Gem::Dependency
|
161
|
-
name:
|
147
|
+
name: rubocop
|
162
148
|
requirement: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
|
-
- - "
|
150
|
+
- - "~>"
|
165
151
|
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
|
-
type: :
|
152
|
+
version: '0.49'
|
153
|
+
type: :development
|
168
154
|
prerelease: false
|
169
155
|
version_requirements: !ruby/object:Gem::Requirement
|
170
156
|
requirements:
|
171
|
-
- - "
|
157
|
+
- - "~>"
|
172
158
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
159
|
+
version: '0.49'
|
174
160
|
- !ruby/object:Gem::Dependency
|
175
161
|
name: faraday
|
176
162
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,7 +187,6 @@ files:
|
|
201
187
|
- lib/diplomat.rb
|
202
188
|
- lib/diplomat/acl.rb
|
203
189
|
- lib/diplomat/agent.rb
|
204
|
-
- lib/diplomat/api_options.rb
|
205
190
|
- lib/diplomat/check.rb
|
206
191
|
- lib/diplomat/configuration.rb
|
207
192
|
- lib/diplomat/datacenter.rb
|
@@ -240,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
225
|
version: '0'
|
241
226
|
requirements: []
|
242
227
|
rubyforge_project:
|
243
|
-
rubygems_version: 2.
|
228
|
+
rubygems_version: 2.7.7
|
244
229
|
signing_key:
|
245
230
|
specification_version: 4
|
246
231
|
summary: Diplomat is a simple wrapper for Consul
|
data/lib/diplomat/api_options.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
module Diplomat
|
2
|
-
# Helper methods for interacting with the Consul RESTful API
|
3
|
-
module ApiOptions
|
4
|
-
def check_acl_token
|
5
|
-
use_named_parameter('token', Diplomat.configuration.acl_token)
|
6
|
-
end
|
7
|
-
|
8
|
-
def use_cas(options)
|
9
|
-
options ? use_named_parameter('cas', options[:cas]) : []
|
10
|
-
end
|
11
|
-
|
12
|
-
def use_consistency(options)
|
13
|
-
options && options[:consistency] ? [options[:consistency].to_s] : []
|
14
|
-
end
|
15
|
-
|
16
|
-
# Mapping for valid key/value store transaction verbs and required parameters
|
17
|
-
#
|
18
|
-
# @return [Hash] valid key/store transaction verbs and required parameters
|
19
|
-
# rubocop:disable MethodLength
|
20
|
-
def valid_transaction_verbs
|
21
|
-
{
|
22
|
-
'set' => %w[Key Value],
|
23
|
-
'cas' => %w[Key Value Index],
|
24
|
-
'lock' => %w[Key Value Session],
|
25
|
-
'unlock' => %w[Key Value Session],
|
26
|
-
'get' => %w[Key],
|
27
|
-
'get-tree' => %w[Key],
|
28
|
-
'check-index' => %w[Key Index],
|
29
|
-
'check-session' => %w[Key Session],
|
30
|
-
'delete' => %w[Key],
|
31
|
-
'delete-tree' => %w[Key],
|
32
|
-
'delete-cas' => %w[Key Index]
|
33
|
-
}
|
34
|
-
end
|
35
|
-
# rubocop:enable MethodLength
|
36
|
-
|
37
|
-
# Key/value store transactions that require that a value be set
|
38
|
-
#
|
39
|
-
# @return [Array<String>] verbs that require a value be set
|
40
|
-
def valid_value_transactions
|
41
|
-
@valid_value_transactions ||= valid_transaction_verbs.select do |verb, requires|
|
42
|
-
verb if requires.include? 'Value'
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|