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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21650fb9bfd13dc3d1b8e0e2a6c826e97ff8cce9
4
- data.tar.gz: 502213b0d3394afb96427fb54a52113d7672981d
3
+ metadata.gz: 214acdf959717e10b66a8e6df483365a4283d093
4
+ data.tar.gz: afabe80e96eac0f0a563fdb4a403a1038a41cb80
5
5
  SHA512:
6
- metadata.gz: 7364cfd35d713e3144bb6fbcabe89807c92dad4e1a06523d717e23ee2dfa78a227f64b2e9e9668306ed23fca1c250331fc263a52021881a9c3218c5d62585f9b
7
- data.tar.gz: 1546ee4f08a823292765fb322ad922d2b87892276d034fdcaec1ba4cddb29c4100d4f8863c5bbef10960cda0b18eae4e4933e5398170b2394b4f9f2c16c7195c
6
+ metadata.gz: e775bbfa7e80a1a578b89bedc01c456d052cb164745c9d151597764e0519d759d2ae041d6efa974fb410d5d9727d590fe83d64b4f7b2342d0597447ffa2c09c6
7
+ data.tar.gz: 647786436076bf00240175dcaef26beb4f7fb82b99fcef382e6838da8c0762b5416c980dcae9d7c2482a9773929d1f7c33bfb8e085b3d6f2c93c19ef635b0b98
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "https://rubygems.org"
2
2
 
3
3
  gem 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
4
4
  gem 'faraday'
5
- gem 'grpc', '~> 1.17.1'
5
+ gem 'grpc', '~> 1.18.0'
6
6
 
7
7
  group :development do
8
8
  gem 'grpc-tools', '~> 1.17.1'
@@ -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.2)
26
+ googleapis-common-protos-types (1.0.3)
27
27
  google-protobuf (~> 3.0)
28
- grpc (1.17.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.17.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.0
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)
@@ -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
- at_exit do
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
- while true do
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
- level = e.code == 1 ? Logger::DEBUG : Logger::INFO
176
- @base_client.log_internal level, ("config client encountered #{e.message} pausing #{RECONNECT_WAIT}")
177
- reset
178
- sleep(RECONNECT_WAIT)
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
@@ -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.0 ruby lib
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.0"
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.17.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.17.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.17.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.0
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.17.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.17.1
60
+ version: 1.18.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: grpc-tools
63
63
  requirement: !ruby/object:Gem::Requirement