embulk-input-gcs 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +1 -0
- data/build.gradle +1 -1
- data/src/main/java/org/embulk/input/gcs/GcsFileInputPlugin.java +14 -8
- data/src/test/java/org/embulk/input/gcs/TestGcsFileInputPlugin.java +12 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 206cae7d3839c48e0d5463c12143a602de77d3fa
|
4
|
+
data.tar.gz: 2d7215927a470c9ba7540970057b81365a975dd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d98845cbb8c6d71a464430c6758674fcbb68af5d632723be2289b07f3b69991b0074a1dbbeaa445fa7e4a1a171aa9a3e5b962df4670fb88ec32883348d5eb6f9
|
7
|
+
data.tar.gz: d499db32c291a9abc349ea3b0969fb32eea164f06723323167aa9529cd9c2abfbf6135a275439da3d8597687525ff568f7133864674bd553d039be92cf58e407
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 0.2.3 - 2016-08-09
|
2
|
+
* [new feature] Support `incremental` option [#24](https://github.com/embulk/embulk-input-gcs/pull/24)
|
3
|
+
|
1
4
|
## 0.2.2 - 2016-08-08
|
2
5
|
* [maintenance] Fix validation logic for `path_prefix` and `paths` options [#23](https://github.com/embulk/embulk-input-gcs/pull/23)
|
3
6
|
|
data/README.md
CHANGED
@@ -40,6 +40,7 @@ embulk run /path/to/config.yml
|
|
40
40
|
- **bucket** Google Cloud Storage bucket name (string, required)
|
41
41
|
- **path_prefix** prefix of target keys (string, either of "path_prefix" or "paths" is required)
|
42
42
|
- **paths** list of target keys (array of string, either of "path_prefix" or "paths" is required)
|
43
|
+
- **incremental**: enables incremental loading(boolean, optional. default: true. If incremental loading is enabled, config diff for the next execution will include `last_path` parameter so that next execution skips files before the path. Otherwise, `last_path` will not be included.
|
43
44
|
- **auth_method** (string, optional, "private_key", "json_key" or "compute_engine". default value is "private_key")
|
44
45
|
- **service_account_email** Google Cloud Storage service_account_email (string, required when auth_method is private_key)
|
45
46
|
- **p12_keyfile** fullpath of p12 key (string, required when auth_method is private_key)
|
data/build.gradle
CHANGED
@@ -59,6 +59,10 @@ public class GcsFileInputPlugin
|
|
59
59
|
@ConfigDefault("null")
|
60
60
|
Optional<String> getLastPath();
|
61
61
|
|
62
|
+
@Config("incremental")
|
63
|
+
@ConfigDefault("true")
|
64
|
+
boolean getIncremental();
|
65
|
+
|
62
66
|
@Config("auth_method")
|
63
67
|
@ConfigDefault("\"private_key\"")
|
64
68
|
AuthMethod getAuthMethod();
|
@@ -179,15 +183,17 @@ public class GcsFileInputPlugin
|
|
179
183
|
ConfigDiff configDiff = Exec.newConfigDiff();
|
180
184
|
|
181
185
|
List<String> files = new ArrayList<String>(task.getFiles());
|
182
|
-
if (
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
+
if (task.getIncremental()) {
|
187
|
+
if (files.isEmpty()) {
|
188
|
+
// keep the last value if any
|
189
|
+
if (task.getLastPath().isPresent()) {
|
190
|
+
configDiff.set("last_path", task.getLastPath().get());
|
191
|
+
}
|
192
|
+
}
|
193
|
+
else {
|
194
|
+
Collections.sort(files);
|
195
|
+
configDiff.set("last_path", files.get(files.size() - 1));
|
186
196
|
}
|
187
|
-
}
|
188
|
-
else {
|
189
|
-
Collections.sort(files);
|
190
|
-
configDiff.set("last_path", files.get(files.size() - 1));
|
191
197
|
}
|
192
198
|
|
193
199
|
return configDiff;
|
@@ -105,6 +105,7 @@ public class TestGcsFileInputPlugin
|
|
105
105
|
.set("path_prefix", "my-prefix");
|
106
106
|
|
107
107
|
GcsFileInputPlugin.PluginTask task = config.loadConfig(PluginTask.class);
|
108
|
+
assertEquals(true, task.getIncremental());
|
108
109
|
assertEquals("private_key", task.getAuthMethod().toString());
|
109
110
|
assertEquals("Embulk GCS input plugin", task.getApplicationName());
|
110
111
|
}
|
@@ -302,6 +303,17 @@ public class TestGcsFileInputPlugin
|
|
302
303
|
assertEquals(GCP_BUCKET_DIRECTORY + "sample_02.csv", configDiff.get(String.class, "last_path"));
|
303
304
|
}
|
304
305
|
|
306
|
+
@Test
|
307
|
+
public void testListFilesByPrefixIncrementalFalse() throws Exception
|
308
|
+
{
|
309
|
+
ConfigSource config = config().deepCopy()
|
310
|
+
.set("incremental", false);
|
311
|
+
|
312
|
+
ConfigDiff configDiff = runner.transaction(config, new Control());
|
313
|
+
|
314
|
+
assertEquals("{}", configDiff.toString());
|
315
|
+
}
|
316
|
+
|
305
317
|
@Test
|
306
318
|
public void testListFilesByPrefixNonExistsBucket()
|
307
319
|
throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-gcs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Satoshi Akama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,7 +67,7 @@ files:
|
|
67
67
|
- src/test/resources/secretkeys.tar.enc
|
68
68
|
- classpath/commons-codec-1.3.jar
|
69
69
|
- classpath/commons-logging-1.1.1.jar
|
70
|
-
- classpath/embulk-input-gcs-0.2.
|
70
|
+
- classpath/embulk-input-gcs-0.2.3.jar
|
71
71
|
- classpath/google-api-client-1.21.0.jar
|
72
72
|
- classpath/google-api-services-storage-v1-rev59-1.21.0.jar
|
73
73
|
- classpath/google-http-client-1.21.0.jar
|