prefab-cloud-ruby 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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