embulk-output-elasticsearch 0.4.2 → 0.4.3
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3be5c4aa4a859ab429375abbbb219665ea4036c0
|
4
|
+
data.tar.gz: 75f3d82aa911310d760f8669ab6c27ae6b8aa65d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e606d402f49e8b7945e220e7a3fbdda72b4a86dc9a012155dc7bd2c94808ebd870b96af7fd551e8c9360e1ff4a707cb2b5f48f032ab69324347b1b431b3d007c
|
7
|
+
data.tar.gz: fb66e9cce399d2aa864330526524c2c4de8ed5ea48296fae0a89b7565e68cf653da3ecfc901e0317008e208714ac4321333d1962a9d4a79fd0c503814573f9a3
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 0.4.3 - 2017-06-12
|
2
|
+
|
3
|
+
* [maintenance] Improve exception handling [#38](https://github.com/muga/embulk-output-elasticsearch/pull/38)
|
4
|
+
* [maintenance] Fix ElasticsearchRecordBuffer to call retryHelper.close() [#39](https://github.com/muga/embulk-output-elasticsearch/pull/39)
|
5
|
+
|
1
6
|
## 0.4.2 - 2017-05-31
|
2
7
|
|
3
8
|
* [maintenance] Update embulk-base-restclient to fix ArrayIndexOutOfBoundsException [#37](https://github.com/muga/embulk-output-elasticsearch/pull/37)
|
data/build.gradle
CHANGED
@@ -310,50 +310,51 @@ public class ElasticsearchHttpClient
|
|
310
310
|
return sendRequest(path, method, task, retryHelper, "");
|
311
311
|
}
|
312
312
|
|
313
|
-
private JsonNode sendRequest(String path, final HttpMethod method, PluginTask task, Jetty92RetryHelper retryHelper, final String content)
|
313
|
+
private JsonNode sendRequest(String path, final HttpMethod method, final PluginTask task, Jetty92RetryHelper retryHelper, final String content)
|
314
314
|
{
|
315
315
|
final String uri = createRequestUri(task, path);
|
316
316
|
final String authorizationHeader = getAuthorizationHeader(task);
|
317
317
|
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
request.content(new StringContentProvider(content), "application/json");
|
331
|
-
}
|
332
|
-
|
333
|
-
if (!authorizationHeader.isEmpty()) {
|
334
|
-
request.header("Authorization", authorizationHeader);
|
335
|
-
}
|
336
|
-
request.send(responseListener);
|
318
|
+
String responseBody = retryHelper.requestWithRetry(
|
319
|
+
new StringJetty92ResponseEntityReader(task.getTimeoutMills()),
|
320
|
+
new Jetty92SingleRequester() {
|
321
|
+
@Override
|
322
|
+
public void requestOnce(org.eclipse.jetty.client.HttpClient client, org.eclipse.jetty.client.api.Response.Listener responseListener)
|
323
|
+
{
|
324
|
+
org.eclipse.jetty.client.api.Request request = client
|
325
|
+
.newRequest(uri)
|
326
|
+
.accept("application/json")
|
327
|
+
.method(method);
|
328
|
+
if (method == HttpMethod.POST) {
|
329
|
+
request.content(new StringContentProvider(content), "application/json");
|
337
330
|
}
|
338
331
|
|
339
|
-
|
340
|
-
|
341
|
-
{
|
342
|
-
int status = response.getStatus();
|
343
|
-
if (status == 429) {
|
344
|
-
return true; // Retry if 429.
|
345
|
-
}
|
346
|
-
return status / 100 != 4; // Retry unless 4xx except for 429.
|
332
|
+
if (!authorizationHeader.isEmpty()) {
|
333
|
+
request.header("Authorization", authorizationHeader);
|
347
334
|
}
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
335
|
+
request.send(responseListener);
|
336
|
+
}
|
337
|
+
|
338
|
+
@Override
|
339
|
+
public boolean isExceptionToRetry(Exception exception)
|
340
|
+
{
|
341
|
+
return task.getId().isPresent();
|
342
|
+
}
|
343
|
+
|
344
|
+
@Override
|
345
|
+
public boolean isResponseStatusToRetry(org.eclipse.jetty.client.api.Response response)
|
346
|
+
{
|
347
|
+
int status = response.getStatus();
|
348
|
+
if (status == 404) {
|
349
|
+
throw new ResourceNotFoundException("Requested resource was not found");
|
350
|
+
}
|
351
|
+
else if (status == 429) {
|
352
|
+
return true; // Retry if 429.
|
353
|
+
}
|
354
|
+
return status / 100 != 4; // Retry unless 4xx except for 429.
|
355
|
+
}
|
356
|
+
});
|
357
|
+
return parseJson(responseBody);
|
357
358
|
}
|
358
359
|
|
359
360
|
private String createRequestUri(PluginTask task, String path)
|
@@ -403,6 +404,11 @@ public class ElasticsearchHttpClient
|
|
403
404
|
{
|
404
405
|
}
|
405
406
|
|
407
|
+
public ResourceNotFoundException(String message)
|
408
|
+
{
|
409
|
+
super(message);
|
410
|
+
}
|
411
|
+
|
406
412
|
public ResourceNotFoundException(Throwable cause)
|
407
413
|
{
|
408
414
|
super(cause);
|
@@ -88,12 +88,15 @@ public class ElasticsearchRecordBuffer
|
|
88
88
|
@Override
|
89
89
|
public TaskReport commitWithTaskReportUpdated(TaskReport taskReport)
|
90
90
|
{
|
91
|
-
|
92
|
-
|
93
|
-
|
91
|
+
try {
|
92
|
+
if (records.size() > 0) {
|
93
|
+
client.push(records, task, retryHelper);
|
94
|
+
log.info("Inserted {} records", records.size());
|
95
|
+
}
|
96
|
+
return Exec.newTaskReport().set("inserted", totalCount);
|
97
|
+
}
|
98
|
+
finally {
|
99
|
+
this.retryHelper.close();
|
94
100
|
}
|
95
|
-
|
96
|
-
this.retryHelper.close();
|
97
|
-
return Exec.newTaskReport().set("inserted", totalCount);
|
98
101
|
}
|
99
102
|
}
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Muga Nishizawa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
14
20
|
requirement: !ruby/object:Gem::Requirement
|
15
21
|
requirements:
|
16
22
|
- - '>='
|
17
23
|
- !ruby/object:Gem::Version
|
18
24
|
version: '1.0'
|
19
|
-
name: bundler
|
20
25
|
prerelease: false
|
21
26
|
type: :development
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
22
29
|
version_requirements: !ruby/object:Gem::Requirement
|
23
30
|
requirements:
|
24
31
|
- - '>='
|
25
32
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
27
|
-
- !ruby/object:Gem::Dependency
|
33
|
+
version: '10.0'
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
29
35
|
requirements:
|
30
36
|
- - '>='
|
31
37
|
- !ruby/object:Gem::Version
|
32
38
|
version: '10.0'
|
33
|
-
name: rake
|
34
39
|
prerelease: false
|
35
40
|
type: :development
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: test-unit
|
36
43
|
version_requirements: !ruby/object:Gem::Requirement
|
37
44
|
requirements:
|
38
|
-
- -
|
45
|
+
- - ~>
|
39
46
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version: 3.0.2
|
42
48
|
requirement: !ruby/object:Gem::Requirement
|
43
49
|
requirements:
|
44
50
|
- - ~>
|
45
51
|
- !ruby/object:Gem::Version
|
46
52
|
version: 3.0.2
|
47
|
-
name: test-unit
|
48
53
|
prerelease: false
|
49
54
|
type: :development
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 3.0.2
|
55
55
|
description: Elasticsearch output plugin is an Embulk plugin that loads records to Elasticsearch read by any input plugins. Search the input plugins by "embulk-input" keyword.
|
56
56
|
email:
|
57
57
|
- muga.nishizawa@gmail.com
|
@@ -83,7 +83,7 @@ files:
|
|
83
83
|
- src/test/java/org/embulk/output/elasticsearch/TestElasticsearchOutputPlugin.java
|
84
84
|
- src/test/resources/sample_01.csv
|
85
85
|
- classpath/embulk-base-restclient-0.5.2.jar
|
86
|
-
- classpath/embulk-output-elasticsearch-0.4.
|
86
|
+
- classpath/embulk-output-elasticsearch-0.4.3.jar
|
87
87
|
- classpath/embulk-util-retryhelper-jetty92-0.5.2.jar
|
88
88
|
- classpath/jetty-client-9.2.14.v20151106.jar
|
89
89
|
- classpath/jetty-http-9.2.14.v20151106.jar
|