embulk-input-zendesk 0.1.4 → 0.1.5
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 +4 -4
- data/CHANGELOG.md +3 -0
- data/embulk-input-zendesk.gemspec +2 -2
- data/lib/embulk/input/zendesk/client.rb +5 -3
- data/test/embulk/input/zendesk/test_client.rb +13 -5
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdd23bdf56e325f692e469316f07d92a9173727b
|
4
|
+
data.tar.gz: d70d14895b9e26f7f57b03c1b56cb5ac1382b755
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b6fb9f91fa3d5f58b8c3ad270084dc81c1dd76c14578461932a1f0ad5453f7c05649d4cc62d74c8053c543e084fe6ae2e90871d490591cd6216f3f16aebac7a
|
7
|
+
data.tar.gz: 5ef68347436a5d175377cdf2c1c27ff8cefdce8ee73e2f97c4aae14bd08fa54d180569035aa714b83ee19f37f474147905d28fb7260fbbfd29908623b12d8c82
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 0.1.5 - 2016-04-14
|
2
|
+
* [enhancement] Mitigate debug pain when many retry then error [#10](https://github.com/treasure-data/embulk-input-zendesk/pull/10)
|
3
|
+
|
1
4
|
## 0.1.4 - 2016-04-08
|
2
5
|
|
3
6
|
* [enhancement] Correct preview data [#9](https://github.com/treasure-data/embulk-input-zendesk/pull/9)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
Gem::Specification.new do |spec|
|
3
3
|
spec.name = "embulk-input-zendesk"
|
4
|
-
spec.version = "0.1.
|
4
|
+
spec.version = "0.1.5"
|
5
5
|
spec.authors = ["uu59", "muga", "sakama"]
|
6
6
|
spec.summary = "Zendesk input plugin for Embulk"
|
7
7
|
spec.description = "Loads records from Zendesk."
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.test_files = spec.files.grep(%r{^(test|spec)/})
|
14
14
|
spec.require_paths = ["lib"]
|
15
15
|
|
16
|
-
spec.add_dependency 'perfect_retry', '~> 0.
|
16
|
+
spec.add_dependency 'perfect_retry', '~> 0.5'
|
17
17
|
spec.add_dependency 'httpclient'
|
18
18
|
spec.add_development_dependency 'embulk', ['~> 0.8.1']
|
19
19
|
spec.add_development_dependency 'bundler', ['~> 1.0']
|
@@ -150,6 +150,7 @@ module Embulk
|
|
150
150
|
config.log_level = nil
|
151
151
|
config.dont_rescues = [Embulk::DataError, Embulk::ConfigError]
|
152
152
|
config.sleep = lambda{|n| @config[:retry_initial_wait_sec]* (2 ** (n-1)) }
|
153
|
+
config.raise_original_error = true
|
153
154
|
end
|
154
155
|
end
|
155
156
|
|
@@ -251,14 +252,15 @@ module Embulk
|
|
251
252
|
case status_code
|
252
253
|
when 200, 404
|
253
254
|
# 404 would be returned e.g. ticket comments are empty (on fetch_subresource method)
|
254
|
-
when 400, 401
|
255
|
-
raise Embulk::ConfigError.new("[#{status_code}] #{body}")
|
256
255
|
when 409
|
257
256
|
raise "[#{status_code}] temporally failure."
|
258
257
|
when 429
|
259
258
|
# rate limit
|
260
259
|
retry_after = headers["Retry-After"]
|
261
260
|
wait_rate_limit(retry_after.to_i)
|
261
|
+
when 400..500
|
262
|
+
# Won't retry for 4xx range errors except above. Almost they should be ConfigError e.g. 403 Forbidden
|
263
|
+
raise Embulk::ConfigError.new("[#{status_code}] #{body}")
|
262
264
|
when 500, 503
|
263
265
|
# 503 is possible rate limit
|
264
266
|
retry_after = headers["Retry-After"]
|
@@ -268,7 +270,7 @@ module Embulk
|
|
268
270
|
raise "[#{status_code}] temporally failure."
|
269
271
|
end
|
270
272
|
else
|
271
|
-
raise "Server returns unknown status code (#{status_code})"
|
273
|
+
raise "Server returns unknown status code (#{status_code}) #{body}"
|
272
274
|
end
|
273
275
|
end
|
274
276
|
end
|
@@ -316,13 +316,13 @@ module Embulk
|
|
316
316
|
@client ||= Client.new(login_url: login_url, auth_method: "oauth", access_token: access_token, retry_limit: 2, retry_initial_wait_sec: 0)
|
317
317
|
end
|
318
318
|
|
319
|
-
def stub_response(status, headers = [])
|
319
|
+
def stub_response(status, headers = [], body_json = nil)
|
320
|
+
headers << "Content-Type: application/json"
|
320
321
|
@httpclient.test_loopback_http_response << [
|
321
322
|
"HTTP/1.1 #{status}",
|
322
|
-
"Content-Type: application/json",
|
323
323
|
headers.join("\r\n"),
|
324
324
|
"",
|
325
|
-
{
|
325
|
+
body_json || {
|
326
326
|
tickets: []
|
327
327
|
}.to_json
|
328
328
|
].join("\r\n")
|
@@ -351,6 +351,13 @@ module Embulk
|
|
351
351
|
end
|
352
352
|
end
|
353
353
|
|
354
|
+
test "403 forbidden" do
|
355
|
+
stub_response(403)
|
356
|
+
assert_raise(ConfigError) do
|
357
|
+
client.tickets(&proc{})
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
354
361
|
test "409" do
|
355
362
|
stub_response(409)
|
356
363
|
assert_raise(StandardError) do
|
@@ -391,8 +398,9 @@ module Embulk
|
|
391
398
|
end
|
392
399
|
|
393
400
|
test "Unhandled response code (555)" do
|
394
|
-
|
395
|
-
|
401
|
+
error_body = {error: "FATAL ERROR"}.to_json
|
402
|
+
stub_response(555, [], error_body)
|
403
|
+
assert_raise(RuntimeError.new("Server returns unknown status code (555) #{error_body}")) do
|
396
404
|
client.tickets(&proc{})
|
397
405
|
end
|
398
406
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-zendesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- uu59
|
@@ -10,14 +10,14 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-04-
|
13
|
+
date: 2016-04-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '0.
|
20
|
+
version: '0.5'
|
21
21
|
name: perfect_retry
|
22
22
|
prerelease: false
|
23
23
|
type: :runtime
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '0.
|
28
|
+
version: '0.5'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|