prefab-cloud-ruby 0.5.0 → 0.5.1
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/Gemfile +1 -1
- data/Gemfile.lock +3 -3
- data/VERSION +1 -1
- data/lib/prefab/cancellable_interceptor.rb +18 -0
- data/lib/prefab/config_client.rb +16 -10
- data/prefab-cloud-ruby.gemspec +5 -5
- 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: 214acdf959717e10b66a8e6df483365a4283d093
|
4
|
+
data.tar.gz: afabe80e96eac0f0a563fdb4a403a1038a41cb80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e775bbfa7e80a1a578b89bedc01c456d052cb164745c9d151597764e0519d759d2ae041d6efa974fb410d5d9727d590fe83d64b4f7b2342d0597447ffa2c09c6
|
7
|
+
data.tar.gz: 647786436076bf00240175dcaef26beb4f7fb82b99fcef382e6838da8c0762b5416c980dcae9d7c2482a9773929d1f7c33bfb8e085b3d6f2c93c19ef635b0b98
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -23,9 +23,9 @@ GEM
|
|
23
23
|
hashie (~> 3.5, >= 3.5.2)
|
24
24
|
oauth2 (~> 1.0)
|
25
25
|
google-protobuf (3.6.1)
|
26
|
-
googleapis-common-protos-types (1.0.
|
26
|
+
googleapis-common-protos-types (1.0.3)
|
27
27
|
google-protobuf (~> 3.0)
|
28
|
-
grpc (1.
|
28
|
+
grpc (1.18.0)
|
29
29
|
google-protobuf (~> 3.1)
|
30
30
|
googleapis-common-protos-types (~> 1.0.0)
|
31
31
|
grpc-tools (1.17.1)
|
@@ -91,7 +91,7 @@ DEPENDENCIES
|
|
91
91
|
bundler (~> 1.0)
|
92
92
|
concurrent-ruby (~> 1.0, >= 1.0.5)
|
93
93
|
faraday
|
94
|
-
grpc (~> 1.
|
94
|
+
grpc (~> 1.18.0)
|
95
95
|
grpc-tools (~> 1.17.1)
|
96
96
|
juwelier (~> 2.4.9)
|
97
97
|
rdoc (~> 3.12)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.1
|
@@ -1,8 +1,26 @@
|
|
1
1
|
module Prefab
|
2
2
|
class CancellableInterceptor < GRPC::ClientInterceptor
|
3
|
+
WAIT_SEC = 3
|
4
|
+
|
5
|
+
def initialize(base_client)
|
6
|
+
@base_client = base_client
|
7
|
+
end
|
3
8
|
|
4
9
|
def cancel
|
5
10
|
@call.instance_variable_get("@wrapped").instance_variable_get("@call").cancel
|
11
|
+
i = 0
|
12
|
+
while (i < WAIT_SEC) do
|
13
|
+
if @call.instance_variable_get("@wrapped").cancelled?
|
14
|
+
@base_client.log_internal Logger::DEBUG, "Cancelled streaming."
|
15
|
+
return
|
16
|
+
else
|
17
|
+
@base_client.log_internal Logger::DEBUG, "Unable to cancel streaming. Trying again"
|
18
|
+
@call.instance_variable_get("@wrapped").instance_variable_get("@call").cancel
|
19
|
+
i += 1
|
20
|
+
sleep(1)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
@base_client.log_internal Logger::INFO, "Unable to cancel streaming."
|
6
24
|
end
|
7
25
|
|
8
26
|
def request_response(request:, call:, method:, metadata:, &block)
|
data/lib/prefab/config_client.rb
CHANGED
@@ -16,7 +16,7 @@ module Prefab
|
|
16
16
|
|
17
17
|
@initialization_lock.acquire_write_lock
|
18
18
|
|
19
|
-
@cancellable_interceptor = Prefab::CancellableInterceptor.new
|
19
|
+
@cancellable_interceptor = Prefab::CancellableInterceptor.new(@base_client)
|
20
20
|
|
21
21
|
@s3_cloud_front = ENV["PREFAB_S3CF_BUCKET"] || DEFAULT_S3CF_BUCKET
|
22
22
|
load_checkpoint
|
@@ -24,10 +24,7 @@ module Prefab
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def start_streaming
|
27
|
-
|
28
|
-
@cancellable_interceptor.cancel
|
29
|
-
end
|
30
|
-
|
27
|
+
@streaming = true
|
31
28
|
start_api_connection_thread(@config_loader.highwater_mark)
|
32
29
|
end
|
33
30
|
|
@@ -160,8 +157,14 @@ module Prefab
|
|
160
157
|
start_at_id: start_at_id)
|
161
158
|
@base_client.log_internal Logger::DEBUG, "start api connection thread #{start_at_id}"
|
162
159
|
@base_client.stats.increment("prefab.config.api.start")
|
160
|
+
|
163
161
|
@api_connection_thread = Thread.new do
|
164
|
-
|
162
|
+
at_exit do
|
163
|
+
@streaming = false
|
164
|
+
@cancellable_interceptor.cancel
|
165
|
+
end
|
166
|
+
|
167
|
+
while @streaming do
|
165
168
|
begin
|
166
169
|
resp = stub.get_config(config_req)
|
167
170
|
resp.each do |r|
|
@@ -172,13 +175,16 @@ module Prefab
|
|
172
175
|
finish_init!(:streaming)
|
173
176
|
end
|
174
177
|
rescue => e
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
178
|
+
if @streaming
|
179
|
+
level = e.code == 1 ? Logger::DEBUG : Logger::INFO
|
180
|
+
@base_client.log_internal level, ("config client encountered #{e.message} pausing #{RECONNECT_WAIT}")
|
181
|
+
reset
|
182
|
+
sleep(RECONNECT_WAIT)
|
183
|
+
end
|
179
184
|
end
|
180
185
|
end
|
181
186
|
end
|
187
|
+
|
182
188
|
end
|
183
189
|
end
|
184
190
|
end
|
data/prefab-cloud-ruby.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: prefab-cloud-ruby 0.5.
|
5
|
+
# stub: prefab-cloud-ruby 0.5.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "prefab-cloud-ruby".freeze
|
9
|
-
s.version = "0.5.
|
9
|
+
s.version = "0.5.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
@@ -62,7 +62,7 @@ Gem::Specification.new do |s|
|
|
62
62
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
63
63
|
s.add_runtime_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
|
64
64
|
s.add_runtime_dependency(%q<faraday>.freeze, [">= 0"])
|
65
|
-
s.add_runtime_dependency(%q<grpc>.freeze, ["~> 1.
|
65
|
+
s.add_runtime_dependency(%q<grpc>.freeze, ["~> 1.18.0"])
|
66
66
|
s.add_development_dependency(%q<grpc-tools>.freeze, ["~> 1.17.1"])
|
67
67
|
s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
|
68
68
|
s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
@@ -72,7 +72,7 @@ Gem::Specification.new do |s|
|
|
72
72
|
else
|
73
73
|
s.add_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
|
74
74
|
s.add_dependency(%q<faraday>.freeze, [">= 0"])
|
75
|
-
s.add_dependency(%q<grpc>.freeze, ["~> 1.
|
75
|
+
s.add_dependency(%q<grpc>.freeze, ["~> 1.18.0"])
|
76
76
|
s.add_dependency(%q<grpc-tools>.freeze, ["~> 1.17.1"])
|
77
77
|
s.add_dependency(%q<shoulda>.freeze, [">= 0"])
|
78
78
|
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
@@ -83,7 +83,7 @@ Gem::Specification.new do |s|
|
|
83
83
|
else
|
84
84
|
s.add_dependency(%q<concurrent-ruby>.freeze, [">= 1.0.5", "~> 1.0"])
|
85
85
|
s.add_dependency(%q<faraday>.freeze, [">= 0"])
|
86
|
-
s.add_dependency(%q<grpc>.freeze, ["~> 1.
|
86
|
+
s.add_dependency(%q<grpc>.freeze, ["~> 1.18.0"])
|
87
87
|
s.add_dependency(%q<grpc-tools>.freeze, ["~> 1.17.1"])
|
88
88
|
s.add_dependency(%q<shoulda>.freeze, [">= 0"])
|
89
89
|
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prefab-cloud-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Dwyer
|
@@ -50,14 +50,14 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.
|
53
|
+
version: 1.18.0
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 1.
|
60
|
+
version: 1.18.0
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: grpc-tools
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|