diplomat 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Gem Version](https://badge.fury.io/rb/diplomat.svg)](http://badge.fury.io/rb/diplomat) [![Gem](https://img.shields.io/gem/dt/diplomat.svg)](https://rubygems.org/gems/diplomat/versions/2.0.0) [![Build Status](https://travis-ci.org/WeAreFarmGeek/diplomat.svg?branch=master)](https://travis-ci.org/WeAreFarmGeek/diplomat) [![Code Climate](https://codeclimate.com/github/johnhamelink/diplomat.
|
2
|
+
[![Gem Version](https://badge.fury.io/rb/diplomat.svg)](http://badge.fury.io/rb/diplomat) [![Gem](https://img.shields.io/gem/dt/diplomat.svg)](https://rubygems.org/gems/diplomat/versions/2.0.0) [![Build Status](https://travis-ci.org/WeAreFarmGeek/diplomat.svg?branch=master)](https://travis-ci.org/WeAreFarmGeek/diplomat) [![Code Climate](https://codeclimate.com/github/johnhamelink/diplomat.svg)](https://codeclimate.com/github/WeAreFarmGeek/diplomat) [![Inline docs](http://inch-ci.org/github/wearefarmgeek/diplomat.svg?branch=master)](http://inch-ci.org/github/wearefarmgeek/diplomat)
|
3
3
|
### A HTTP Ruby API for [Consul](http://www.consul.io/)
|
4
4
|
|
5
5
|
![Diplomacy Boad Game](http://i.imgur.com/Nkuy4b7.jpg)
|
@@ -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
|