upfluence-thrift 1.0.6 → 1.0.7

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: fe021f1ee3ffa17f4e03313559749305b3fe4e5b
4
- data.tar.gz: 9a3b75b02146b4ad62ca3924bf8bbd37b75b8cda
3
+ metadata.gz: 5be267a87cec41d07f9a14ce879abbb6f7de8228
4
+ data.tar.gz: aaf02c1244cdea7459e76e35514a41e16657364b
5
5
  SHA512:
6
- metadata.gz: 5a47c37136de837bb54d1f08dd4f1554ed20ed3fb71580913b2a179bf5fa0ba6851eda2204fc891a547e96b6b15e4d73ca275293b88f141f48d6a83e0648dca7
7
- data.tar.gz: f3eb8cc5a124809252626eabceea49891f9586fdcc1d72cf9517bcd542045a47b1e62525516f325d822a10406ae5c3f4c19b271667e15cdc5271cf791a46508d
6
+ metadata.gz: 79ecb2ac671d310e39d579372e14dc8a3854174ba7a8f95f5f1b987547e68a81381f2045ec942995995bfc149512b5c715c039b04ba27105604fb7be6f0401ff
7
+ data.tar.gz: c3dde03681f60b83e5dcdfdd0aa02f75181f6fd76733aa54ee766a304bdc52c6a9f2e9345ff783ea0e831429ada4f8c2ab9cfbd6ddb51d448fdeab7e6c6c43dc
@@ -1,4 +1,4 @@
1
- #
1
+ #
2
2
  # Licensed to the Apache Software Foundation (ASF) under one
3
3
  # or more contributor license agreements. See the NOTICE file
4
4
  # distributed with this work for additional information
@@ -26,38 +26,45 @@ require 'stringio'
26
26
 
27
27
  module Thrift
28
28
  class HTTPClientTransport < BaseTransport
29
+ DEFAULT_HEADERS = { 'Content-Type' => 'application/x-thrift' }.freeze
29
30
 
30
31
  def initialize(url, opts = {})
31
32
  @url = URI url
32
- @headers = {'Content-Type' => 'application/x-thrift'}
33
+ @headers = DEFAULT_HEADERS.merge(opts.fetch(:headers, {}))
33
34
  @outbuf = Bytes.empty_byte_buffer
34
35
  @ssl_verify_mode = opts.fetch(:ssl_verify_mode, OpenSSL::SSL::VERIFY_PEER)
35
36
  @error_logger = opts[:error_logger]
36
37
  @retries = opts.fetch(:retries, 1)
38
+ @open_timeout = opts[:open_timeout]
39
+ @read_timeout = opts[:read_timeout]
37
40
  end
38
41
 
39
42
  def open?; true end
40
43
  def read(sz); @inbuf.read sz end
41
44
  def write(buf); @outbuf << Bytes.force_binary_encoding(buf) end
42
45
 
43
- def add_headers(headers)
44
- @headers = @headers.merge(headers)
45
- end
46
-
47
46
  def flush
48
47
  tries ||= @retries
49
- http = Net::HTTP.new @url.host, @url.port
50
- http.use_ssl = @url.scheme == 'https'
51
- http.verify_mode = @ssl_verify_mode if @url.scheme == 'https'
52
- resp = http.post(@url.request_uri, @outbuf, @headers)
53
- data = resp.body
54
- data = Bytes.force_binary_encoding(data)
55
- @inbuf = StringIO.new data
48
+ resp = http_client.post(@url.request_uri, @outbuf.dup, @headers)
49
+ resp.value
50
+ @inbuf = StringIO.new Bytes.force_binary_encoding(resp.body)
56
51
  rescue => e
57
52
  retry if (tries -= 1) > 0
58
- @error_logger.capture_exception(e, extra: { url: @url }) if @error_logger
53
+ raise TransportException.new(TransportException::UNKNOWN, e.to_s)
59
54
  ensure
60
55
  @outbuf = Bytes.empty_byte_buffer
61
56
  end
57
+
58
+ private
59
+
60
+ def http_client
61
+ http = Net::HTTP.new @url.host, @url.port
62
+ http.use_ssl = @url.scheme == 'https'
63
+ http.open_timeout = @open_timeout if @open_timeout
64
+ http.read_timeout = @read_timeout if @read_timeout
65
+ http.verify_mode = @ssl_verify_mode if @url.scheme == 'https'
66
+
67
+ http
68
+ end
62
69
  end
63
70
  end
@@ -8,79 +8,6 @@ require 'thrift'
8
8
  require 'debug_proto_test_types'
9
9
 
10
10
  COMPACT_TEST = ::CompactProtoTestStruct.new({
11
- %q"byte_boolean_map" => {
12
- 1 => true,
13
- 2 => false,
14
- },
15
- %q"list_byte_map" => {
16
- [
17
- 1,
18
- 2,
19
- 3,
20
- ] => 1,
21
- [
22
- 0,
23
- 1,
24
- ] => 2,
25
- [
26
- ] => 0,
27
- },
28
- %q"set_byte_map" => {
29
- Set.new([
30
- 1,
31
- 2,
32
- 3,
33
- ]) => 1,
34
- Set.new([
35
- 0,
36
- 1,
37
- ]) => 2,
38
- Set.new([
39
- ]) => 0,
40
- },
41
- %q"map_byte_map" => {
42
- {
43
- 1 => 1,
44
- } => 1,
45
- {
46
- 2 => 2,
47
- } => 2,
48
- {
49
- } => 0,
50
- },
51
- %q"byte_map_map" => {
52
- 0 => {
53
- },
54
- 1 => {
55
- 1 => 1,
56
- },
57
- 2 => {
58
- 1 => 1,
59
- 2 => 2,
60
- },
61
- },
62
- %q"byte_set_map" => {
63
- 0 => Set.new([
64
- ]),
65
- 1 => Set.new([
66
- 1,
67
- ]),
68
- 2 => Set.new([
69
- 1,
70
- 2,
71
- ]),
72
- },
73
- %q"byte_list_map" => {
74
- 0 => [
75
- ],
76
- 1 => [
77
- 1,
78
- ],
79
- 2 => [
80
- 1,
81
- 2,
82
- ],
83
- },
84
11
  %q"a_byte" => 127,
85
12
  %q"a_i16" => 32000,
86
13
  %q"a_i32" => 1000000000,
@@ -254,6 +181,79 @@ COMPACT_TEST = ::CompactProtoTestStruct.new({
254
181
  2 => %q"blah",
255
182
  3 => %q"loooooooooooooong string",
256
183
  },
184
+ %q"byte_boolean_map" => {
185
+ 1 => true,
186
+ 2 => false,
187
+ },
188
+ %q"list_byte_map" => {
189
+ [
190
+ 1,
191
+ 2,
192
+ 3,
193
+ ] => 1,
194
+ [
195
+ 0,
196
+ 1,
197
+ ] => 2,
198
+ [
199
+ ] => 0,
200
+ },
201
+ %q"set_byte_map" => {
202
+ Set.new([
203
+ 1,
204
+ 2,
205
+ 3,
206
+ ]) => 1,
207
+ Set.new([
208
+ 0,
209
+ 1,
210
+ ]) => 2,
211
+ Set.new([
212
+ ]) => 0,
213
+ },
214
+ %q"map_byte_map" => {
215
+ {
216
+ 1 => 1,
217
+ } => 1,
218
+ {
219
+ 2 => 2,
220
+ } => 2,
221
+ {
222
+ } => 0,
223
+ },
224
+ %q"byte_map_map" => {
225
+ 0 => {
226
+ },
227
+ 1 => {
228
+ 1 => 1,
229
+ },
230
+ 2 => {
231
+ 1 => 1,
232
+ 2 => 2,
233
+ },
234
+ },
235
+ %q"byte_set_map" => {
236
+ 0 => Set.new([
237
+ ]),
238
+ 1 => Set.new([
239
+ 1,
240
+ ]),
241
+ 2 => Set.new([
242
+ 1,
243
+ 2,
244
+ ]),
245
+ },
246
+ %q"byte_list_map" => {
247
+ 0 => [
248
+ ],
249
+ 1 => [
250
+ 1,
251
+ ],
252
+ 2 => [
253
+ 1,
254
+ 2,
255
+ ],
256
+ },
257
257
  })
258
258
 
259
259
  MYCONST = 2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upfluence-thrift
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thrift Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-19 00:00:00.000000000 Z
11
+ date: 2017-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec