influxdb-client 2.0.0.pre.3196 → 2.0.0

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
  SHA256:
3
- metadata.gz: 33f286d2a281bd72623ee0284de96e20aebfc433a39642478c43f31d0258ee50
4
- data.tar.gz: 98d9e3ddc4d6e892daa5bfeba7601af15e4c4da0440ad1ea8fa0d7740e38e21a
3
+ metadata.gz: bc6fd6dd1906594584875d1274c8fb79200e793ced41d6228f7d169e4f5d192a
4
+ data.tar.gz: 37230349c80c42b2af0999e81fea24ecaced43ff7b8aae583510bacb7cf49538
5
5
  SHA512:
6
- metadata.gz: f2f655f21aa5f143abc469b653a90bc9ca381371ad4c60d2bf35fc7019e0e1b6f8ce3d4403f30acaff03a134b0d31bc42c7001dc893dd5db9ad7d08b705dbfbc
7
- data.tar.gz: 95f5b211418be1dd31067dd7f266cbb2a57dc8736e66147908ae6c5edf48036ed021ae299915b04c3d19783d1962f487623f01881bceb27dba08f8d60696170e
6
+ metadata.gz: 8a4fbcef9b4ce901887d12b659b1467f1cc0d1b123238dc5373f02a0bab5b3bfc477b7572ab3994eef0de1a7a200c005058457d0be4827e929291844c6236f5d
7
+ data.tar.gz: 4ca1d999089888084313eb50667c44662383d3650d78f15c34a6a01eb36c3dabceec5f3fa389ec697333fb1341ee639671b3fe12fb41e84a0d90f3603c6f18c1
data/CHANGELOG.md CHANGED
@@ -1,4 +1,7 @@
1
- ## 2.0.0 [unreleased]
1
+ ## 2.0.0 [2021-09-13]
2
+
3
+ ### Bug Fixes
4
+ 1. [#90](https://github.com/influxdata/influxdb-client-ruby/pull/90): Fix parse text plain 503 error response
2
5
 
3
6
  ### Breaking Changes
4
7
  Due to a security reason `Authorization` header is not forwarded when redirect leads to a different domain.
data/README.md CHANGED
@@ -64,13 +64,13 @@ The client can be installed manually or with bundler.
64
64
  To install the client gem manually:
65
65
 
66
66
  ```
67
- gem install influxdb-client -v 1.17.0
67
+ gem install influxdb-client -v 2.0.0
68
68
  ```
69
69
 
70
70
  For management API:
71
71
 
72
72
  ```
73
- gem install influxdb-client-apis -v 1.17.0
73
+ gem install influxdb-client-apis -v 2.0.0
74
74
  ```
75
75
 
76
76
  ## Usage
@@ -35,6 +35,9 @@ module InfluxDB2
35
35
  obj = new(message: json['message'] || '', code: response.code, reference: json['code'] || '',
36
36
  retry_after: response['Retry-After'] || '')
37
37
  obj
38
+ rescue JSON::ParserError
39
+ new(message: response.body || '', code: response.code, reference: '',
40
+ retry_after: response['Retry-After'] || '')
38
41
  end
39
42
 
40
43
  def self.from_message(message)
@@ -210,11 +210,6 @@ class WriteApiBatchingTest < MiniTest::Test
210
210
  @write_client.write(data: ['h2o_feet,location=coyote_creek water_level=1.0 1',
211
211
  'h2o_feet,location=coyote_creek water_level=2.0 2'])
212
212
 
213
- sleep(0.05)
214
-
215
- assert_requested(:post, 'http://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
216
- times: 0, body: request)
217
-
218
213
  sleep(2)
219
214
 
220
215
  assert_requested(:post, 'http://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
@@ -617,4 +612,28 @@ class WriteApiRetryStrategyTest < MiniTest::Test
617
612
  assert_gte backoff, 1_600
618
613
  assert_lte backoff, 2_000
619
614
  end
615
+
616
+ def test_write_error_plain_retry
617
+ error_body = 'Service Unavailable'
618
+ stub_request(:any, 'http://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
619
+ .to_return(status: 503, headers: { 'content-type' => 'text/plain', 'Retry-After' => '2' }, body: error_body)
620
+ .to_return(status: 503, headers: { 'content-type' => 'text/plain' }, body: error_body).to_return(status: 204)
621
+
622
+ client = InfluxDB2::Client.new('http://localhost:8086', 'my-token',
623
+ bucket: 'my-bucket',
624
+ org: 'my-org',
625
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
626
+ use_ssl: false)
627
+
628
+ @write_options = InfluxDB2::WriteOptions.new(write_type: InfluxDB2::WriteType::BATCHING,
629
+ batch_size: 1, flush_interval: 1_000, retry_interval: 1_000)
630
+
631
+ write_api = client.create_write_api(write_options: @write_options)
632
+ request = 'h2o,location=west value=33i 15'
633
+ write_api.write(data: request)
634
+
635
+ sleep(10)
636
+ assert_requested(:post, 'http://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
637
+ times: 3, body: request)
638
+ end
620
639
  end
@@ -384,4 +384,25 @@ class WriteApiDefaultTagsTest < MiniTest::Test
384
384
  assert_requested(:post, 'http://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
385
385
  times: 1, body: expected)
386
386
  end
387
+
388
+ def test_write_error_plain
389
+ error_body = 'Service Unavailable'
390
+ stub_request(:any, 'http://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
391
+ .to_return(status: 503, headers: { 'content-type' => 'text/plain' },
392
+ body: error_body)
393
+
394
+ client = InfluxDB2::Client.new('http://localhost:8086', 'my-token',
395
+ bucket: 'my-bucket',
396
+ org: 'my-org',
397
+ precision: InfluxDB2::WritePrecision::NANOSECOND,
398
+ use_ssl: false)
399
+
400
+ error = assert_raises InfluxDB2::InfluxError do
401
+ write_api = client.create_write_api
402
+ write_api.write(data: 'h2o,location=west value=33i 15')
403
+ end
404
+
405
+ assert_equal '503', error.code
406
+ assert_equal 'Service Unavailable', error.message
407
+ end
387
408
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influxdb-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.3196
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakub Bednar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-31 00:00:00.000000000 Z
11
+ date: 2021-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -184,9 +184,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
184
  version: 2.2.0
185
185
  required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ">"
187
+ - - ">="
188
188
  - !ruby/object:Gem::Version
189
- version: 1.3.1
189
+ version: '0'
190
190
  requirements: []
191
191
  rubygems_version: 3.0.3.1
192
192
  signing_key: