From b96ab9d9953f7584c3ea9ee3b39e90b6daf49f4d Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Tue, 10 Jan 2017 16:16:53 -0800 Subject: [PATCH 1/8] Update sse client to 0.8 --- ldclient-rb.gemspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ldclient-rb.gemspec b/ldclient-rb.gemspec index d7ba9921..54144cc0 100644 --- a/ldclient-rb.gemspec +++ b/ldclient-rb.gemspec @@ -29,8 +29,8 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "faraday-http-cache", "~> 1.3.0" spec.add_runtime_dependency "thread_safe", "~> 0.3" spec.add_runtime_dependency "net-http-persistent", "~> 2.9" - spec.add_runtime_dependency "concurrent-ruby", "~> 1.0.0" + spec.add_runtime_dependency "concurrent-ruby", "~> 1.0.4" spec.add_runtime_dependency "hashdiff", "~> 0.2" - spec.add_runtime_dependency "ld-celluloid-eventsource", "~> 0.5" + spec.add_runtime_dependency "ld-celluloid-eventsource", "~> 0.8" spec.add_runtime_dependency "waitutil", "0.2" end From 8b421eec9b3fad80bfd37bb2de77dacb9bfdba97 Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Tue, 10 Jan 2017 16:43:44 -0800 Subject: [PATCH 2/8] Try to make things more compatible with different ruby versions --- ldclient-rb.gemspec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ldclient-rb.gemspec b/ldclient-rb.gemspec index 54144cc0..33e71923 100644 --- a/ldclient-rb.gemspec +++ b/ldclient-rb.gemspec @@ -32,5 +32,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "concurrent-ruby", "~> 1.0.4" spec.add_runtime_dependency "hashdiff", "~> 0.2" spec.add_runtime_dependency "ld-celluloid-eventsource", "~> 0.8" + spec.add_runtime_dependency "nio4r", "~> 1.1" + spec.add_runtime_dependency "waitutil", "0.2" end From 509ee2baeeca9ba423bb812d30ad28b2ed9239a5 Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Tue, 10 Jan 2017 17:15:29 -0800 Subject: [PATCH 3/8] Fix import, bump sse client version --- ldclient-rb.gemspec | 4 ++-- lib/ldclient-rb/stream.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ldclient-rb.gemspec b/ldclient-rb.gemspec index 33e71923..8bb21648 100644 --- a/ldclient-rb.gemspec +++ b/ldclient-rb.gemspec @@ -31,8 +31,8 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "net-http-persistent", "~> 2.9" spec.add_runtime_dependency "concurrent-ruby", "~> 1.0.4" spec.add_runtime_dependency "hashdiff", "~> 0.2" - spec.add_runtime_dependency "ld-celluloid-eventsource", "~> 0.8" - spec.add_runtime_dependency "nio4r", "~> 1.1" + spec.add_runtime_dependency "ld-celluloid-eventsource", "~> 0.8.1" + spec.add_runtime_dependency "nio4r", "~> 1.1" # for maximum ruby version compatibility. spec.add_runtime_dependency "waitutil", "0.2" end diff --git a/lib/ldclient-rb/stream.rb b/lib/ldclient-rb/stream.rb index 0613c692..b01e6cbe 100644 --- a/lib/ldclient-rb/stream.rb +++ b/lib/ldclient-rb/stream.rb @@ -1,6 +1,6 @@ require "concurrent/atomics" require "json" -require "celluloid/eventsource" +require "ld_celluloid_eventsource/eventsource" module LaunchDarkly PUT = :put From 7eb51efc35a1a0067442a8f02eadd08cade56472 Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Tue, 10 Jan 2017 18:14:08 -0800 Subject: [PATCH 4/8] remove on_error call --- lib/ldclient-rb/stream.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/ldclient-rb/stream.rb b/lib/ldclient-rb/stream.rb index b01e6cbe..8020610b 100644 --- a/lib/ldclient-rb/stream.rb +++ b/lib/ldclient-rb/stream.rb @@ -40,9 +40,6 @@ def start conn.on(DELETE) { |message| process_message(message, DELETE) } conn.on(INDIRECT_PUT) { |message| process_message(message, INDIRECT_PUT) } conn.on(INDIRECT_PATCH) { |message| process_message(message, INDIRECT_PATCH) } - conn.on_error do |message| - @config.logger.error("[LDClient] Error connecting to stream. Status code: #{message[:status_code]}") - end end end From 9d320351981e0f9e1b9704dda674cffd8ca470a6 Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Tue, 10 Jan 2017 19:10:41 -0800 Subject: [PATCH 5/8] Add more verbose debug logging --- lib/ldclient-rb/stream.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ldclient-rb/stream.rb b/lib/ldclient-rb/stream.rb index 8020610b..09c54717 100644 --- a/lib/ldclient-rb/stream.rb +++ b/lib/ldclient-rb/stream.rb @@ -44,7 +44,7 @@ def start end def process_message(message, method) - @config.logger.debug("[LDClient] Stream received #{method} message") + @config.logger.debug("[LDClient] Stream received #{method} message: #{message}") if method == PUT message = JSON.parse(message.data, symbolize_names: true) @store.init(message) From 17a965bb7136d6c83edb446e1c2a0fd924acecfd Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Wed, 11 Jan 2017 09:34:11 -0800 Subject: [PATCH 6/8] Add logging when requesting latest flags --- lib/ldclient-rb/requestor.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/ldclient-rb/requestor.rb b/lib/ldclient-rb/requestor.rb index 69a1ac98..82d522cf 100644 --- a/lib/ldclient-rb/requestor.rb +++ b/lib/ldclient-rb/requestor.rb @@ -24,13 +24,16 @@ def request_flag(key) end def make_request(path) - res = @client.get (@config.base_uri + path) do |req| + uri = @config.base_uri + path + res = @client.get (uri) do |req| req.headers["Authorization"] = @sdk_key req.headers["User-Agent"] = "RubyClient/" + LaunchDarkly::VERSION req.options.timeout = @config.read_timeout req.options.open_timeout = @config.connect_timeout end + @config.logger.debug("[LDClient] Got response from uri: #{uri}\n\tstatus code: #{res.status}\n\theaders: #{res.headers}\n\tbody: #{res.body}") + if res.status == 401 @config.logger.error("[LDClient] Invalid SDK key") return nil From c6f05a5366284154ef182c7d71b999ed9698ac53 Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Wed, 11 Jan 2017 09:56:45 -0800 Subject: [PATCH 7/8] tweak log message --- lib/ldclient-rb/stream.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ldclient-rb/stream.rb b/lib/ldclient-rb/stream.rb index 09c54717..edc5a42c 100644 --- a/lib/ldclient-rb/stream.rb +++ b/lib/ldclient-rb/stream.rb @@ -44,7 +44,7 @@ def start end def process_message(message, method) - @config.logger.debug("[LDClient] Stream received #{method} message: #{message}") + @config.logger.debug("[LDClient] Stream received #{method} message: #{message.data}") if method == PUT message = JSON.parse(message.data, symbolize_names: true) @store.init(message) From e9bd4ec18f59041ea134b7eb86c29da4171533f8 Mon Sep 17 00:00:00 2001 From: Dan Richelson Date: Wed, 11 Jan 2017 16:11:44 -0800 Subject: [PATCH 8/8] Fix documentation comment --- lib/ldclient-rb/config.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ldclient-rb/config.rb b/lib/ldclient-rb/config.rb index 88750b62..fd564dab 100644 --- a/lib/ldclient-rb/config.rb +++ b/lib/ldclient-rb/config.rb @@ -37,7 +37,7 @@ class Config # @option opts [Boolean] :offline (false) Whether the client should be initialized in # offline mode. In offline mode, default values are returned for all flags and no # remote network requests are made. - # @option opts [Float] :poll_interval (30) The number of seconds between polls for flag updates + # @option opts [Float] :poll_interval (1) The number of seconds between polls for flag updates # if streaming is off. # @option opts [Boolean] :stream (true) Whether or not the streaming API should be used to receive flag updates. #