config_server_agent 0.3.4 → 0.3.6
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/.travis.yml +8 -2
- data/CHANGELOG.md +9 -0
- data/config_server_agent.gemspec +1 -1
- data/lib/config_server_agent/version.rb +1 -1
- data/lib/config_server_agent.rb +30 -19
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c19545cad82df1e4454c662b5df2903dc657ce7fba1fe434beb5f5a8bc3465e
|
4
|
+
data.tar.gz: 9370374949fd090acaf8b7b1e1eb6b14131b563084b3a6bf393b9b70839b6036
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64afbc8473f29730780fadad2f5dfa18c1c8c219b0892f943cdb0b775dfed6c2ac1481ce2faefec19325d34d725f6e7b5616c795e738065bc91ee1bb15523bff
|
7
|
+
data.tar.gz: ce866d94120d96437d2746d83cb6888c85fda5e7d310b7e5fdaf27e03110fe21b7ca05114c8e9eaa3f2934c8443f73d8484ad2443101417df22eeb9ba71992df
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## 0.3.6
|
8
|
+
### Changed
|
9
|
+
- Better error handling
|
10
|
+
- Tidier and more comprehensive unit tests
|
11
|
+
|
12
|
+
## 0.3.5
|
13
|
+
### Changed
|
14
|
+
- Set better cache file permissions
|
15
|
+
|
7
16
|
## 0.3.4 - 2019-06-12
|
8
17
|
### Changed
|
9
18
|
- Added optional token caching
|
data/config_server_agent.gemspec
CHANGED
@@ -44,7 +44,7 @@ Gem::Specification.new do |spec|
|
|
44
44
|
|
45
45
|
spec.required_ruby_version = '>= 2.3.0'
|
46
46
|
|
47
|
-
spec.
|
47
|
+
spec.add_runtime_dependency 'lockfile', '~> 2.1'
|
48
48
|
|
49
49
|
spec.add_development_dependency 'bundler', '~> 1.17'
|
50
50
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/lib/config_server_agent.rb
CHANGED
@@ -37,7 +37,7 @@ class ConfigServerAgent
|
|
37
37
|
@token_expires = nil
|
38
38
|
@token = nil
|
39
39
|
@token_ttl = token_ttl
|
40
|
-
@token_buffer = 10
|
40
|
+
@token_buffer = 10 # seconds
|
41
41
|
|
42
42
|
@use_cache = use_cache
|
43
43
|
@cache_file = cache_file || '/tmp/' + Digest::SHA1.hexdigest("#{auth0_client_id}/#{ConfigServerAgent::VERSION}") + '.json'
|
@@ -83,35 +83,45 @@ class ConfigServerAgent
|
|
83
83
|
private
|
84
84
|
|
85
85
|
def post_request(endpoint, data={})
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
configure_request request
|
92
|
-
request.body = data.to_json
|
93
|
-
|
94
|
-
JSON.parse http.request(request).read_body
|
86
|
+
dispatch_request(endpoint) do |url|
|
87
|
+
request = Net::HTTP::Post.new url
|
88
|
+
request.body = data.to_json
|
89
|
+
request
|
90
|
+
end
|
95
91
|
end
|
96
92
|
|
97
93
|
def get_request(endpoint, data={})
|
94
|
+
dispatch_request(endpoint) do |url|
|
95
|
+
url.query = URI.encode_www_form data
|
96
|
+
Net::HTTP::Get.new url
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def dispatch_request(endpoint)
|
98
101
|
url = URI "#{@config_server_host}/api/#{endpoint}"
|
99
|
-
url.query = URI.encode_www_form data
|
100
102
|
http = Net::HTTP.new url.host, url.port
|
101
103
|
http.use_ssl = url.scheme == 'https'
|
102
104
|
|
103
|
-
request =
|
104
|
-
configure_request request
|
105
|
-
|
106
|
-
JSON.parse http.request(request).read_body
|
107
|
-
end
|
108
|
-
|
109
|
-
def configure_request(request)
|
105
|
+
request = yield url
|
110
106
|
request['user-agent'] = @user_agent
|
111
107
|
request['authorization'] = "Bearer #{get_token}"
|
112
108
|
request['content-type'] = 'application/json'
|
113
109
|
request['accept'] = 'application/json'
|
114
110
|
request['api-key'] = @config_server_api_key
|
111
|
+
|
112
|
+
process_response http.request(request)
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
def process_response(response)
|
117
|
+
raise Error, "Unexpected content-type from server: #{response['content-type']}" unless response['content-type'] == 'application/json'
|
118
|
+
data = JSON.parse response.read_body
|
119
|
+
|
120
|
+
raise Error, "Config Server error: #{data['error']}" unless Net::HTTPSuccess === response
|
121
|
+
data
|
122
|
+
|
123
|
+
rescue JSON::ParserError
|
124
|
+
raise Error, "Invalid JSON received from #{@config_server_host}"
|
115
125
|
end
|
116
126
|
|
117
127
|
def get_token
|
@@ -149,7 +159,7 @@ class ConfigServerAgent
|
|
149
159
|
@token
|
150
160
|
|
151
161
|
rescue JSON::ParserError
|
152
|
-
raise Error, "Invalid
|
162
|
+
raise Error, "Invalid JSON received from #{@auth0_host}"
|
153
163
|
end
|
154
164
|
|
155
165
|
def read_token_cache
|
@@ -164,6 +174,7 @@ class ConfigServerAgent
|
|
164
174
|
'token' => @token,
|
165
175
|
'token_expires' => @token_expires
|
166
176
|
}.to_json)
|
177
|
+
FileUtils.chmod 'ug=rw,o=', @cache_file
|
167
178
|
end
|
168
179
|
end
|
169
180
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: config_server_agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aidan Samuel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lockfile
|