embulk-input-gcs 0.2.8 → 0.3.0

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: a5659bab7542e13aad7999cf6f389a65583b4e98
4
- data.tar.gz: dd924ef90a423c1144d41a3807529ca06573aef5
3
+ metadata.gz: dfc015455f0851ec196018a6ede5835653ef7f5a
4
+ data.tar.gz: 47185bd68f3bbe58070094fd9d87bda3635476e4
5
5
  SHA512:
6
- metadata.gz: e9bd79f9ee60895f4af84dcf72422f13659f074fbb97ddaf07a900daf7d184283eee91e3a51c2edc21774715eba0b83357fe1dc4e6993eaaf67f512ebd2efa45
7
- data.tar.gz: a5bba84dab3456e94048f9e8416b881e6323a22fdd64af7a5cd8f78ffbd2c345be2b79d00834bf112396dfe2dbdeb7c58afcdc3a315f91b182711e082263182a
6
+ metadata.gz: ef1608fd099a302e4977b3808d7adb39ea2718937b893545f147167579b9d0ff0dab8b231ab033650c340f0c66588f4fb4568704ea19af499979f0cb7c51276a
7
+ data.tar.gz: e1a57cf92f6c81bb79bd7476d08eaecfab9c9d8c21f61f5d5b32e680cf70b0c9503c8bbc2ff7f2331f50a073c60010a55d105c37c0559cf66c82c439c47d7d5a
@@ -4,8 +4,8 @@ jdk:
4
4
  - oraclejdk8
5
5
 
6
6
  before_install:
7
- - openssl aes-256-cbc -K $encrypted_79f1af2a2546_key -iv $encrypted_79f1af2a2546_iv
8
- -in src/test/resources/secretkeys.tar.enc -out secretkeys.tar -d
7
+ - openssl aes-256-cbc -K $encrypted_407f38382059_key -iv $encrypted_407f38382059_iv
8
+ -in src/test/resources/secretkeys.tar.enc -out ./secretkeys.tar -d
9
9
  - tar xvf secretkeys.tar
10
10
 
11
11
  env:
@@ -13,8 +13,8 @@ env:
13
13
  - GCP_EMAIL=unittest@embulk-input-gcs-test.iam.gserviceaccount.com
14
14
  - GCP_BUCKET=embulk-input-gcs-test
15
15
  - GCP_BUCKET_DIRECTORY=unittests_import
16
- - GCP_P12_KEYFILE=./embulk-input-gcs-test-018324286daf.p12
17
- - GCP_JSON_KEYFILE=./embulk-input-gcs-test-841948b819cf.json
16
+ - GCP_P12_KEYFILE=./embulk-input-gcs-test-9d51de6767a8.p12
17
+ - GCP_JSON_KEYFILE=./embulk-input-gcs-test-65cfe930dca1.json
18
18
 
19
19
  script:
20
20
  - ./gradlew gem
@@ -1,3 +1,6 @@
1
+ ## 0.3.0 - 2018-12-26
2
+ * [maintenance] Use file name output feature in Embulk core to show file name in cmdout [#37](https://github.com/embulk/embulk-input-gcs/pull/37)
3
+
1
4
  ## 0.2.8 - 2018-06-29
2
5
  * [maintenance] Improve retry logic to retry "400 Bad Request" "Invalid JWT: No valid verifier found for issuer" [#34](https://github.com/embulk/embulk-input-gcs/pull/34)
3
6
 
data/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
  ## Overview
5
5
 
6
+ embulk-input-gcs v0.3.0+ requires Embulk v0.9.12+
7
+
6
8
  * Plugin type: **file input**
7
9
  * Resume supported: **yes**
8
10
  * Cleanup supported: **yes**
@@ -17,18 +17,18 @@ configurations {
17
17
  sourceCompatibility = 1.8
18
18
  targetCompatibility = 1.8
19
19
 
20
- version = "0.2.8"
20
+ version = "0.3.0"
21
21
 
22
22
  dependencies {
23
- compile "org.embulk:embulk-core:0.8.2"
24
- provided "org.embulk:embulk-core:0.8.2"
23
+ compile "org.embulk:embulk-core:0.9.12"
24
+ provided "org.embulk:embulk-core:0.9.12"
25
25
 
26
26
  compile "com.google.http-client:google-http-client-jackson2:1.21.0"
27
27
  compile ("com.google.apis:google-api-services-storage:v1-rev59-1.21.0") {exclude module: "guava-jdk5"}
28
28
 
29
29
  testCompile "junit:junit:4.12"
30
- testCompile "org.embulk:embulk-core:0.8.2:tests"
31
- testCompile "org.embulk:embulk-standards:0.8.2"
30
+ testCompile "org.embulk:embulk-core:0.9.12:tests"
31
+ testCompile "org.embulk:embulk-standards:0.9.12"
32
32
  }
33
33
 
34
34
  task classpath(type: Copy, dependsOn: ["jar"]) {
Binary file
Binary file
@@ -3,7 +3,6 @@ package org.embulk.input.gcs;
3
3
  import com.fasterxml.jackson.annotation.JsonCreator;
4
4
  import com.fasterxml.jackson.annotation.JsonIgnore;
5
5
  import com.fasterxml.jackson.annotation.JsonProperty;
6
- import com.google.common.base.Optional;
7
6
  import com.google.common.base.Throwables;
8
7
  import org.embulk.config.Config;
9
8
  import org.embulk.config.ConfigDefault;
@@ -21,6 +20,7 @@ import java.nio.charset.StandardCharsets;
21
20
  import java.util.AbstractList;
22
21
  import java.util.ArrayList;
23
22
  import java.util.List;
23
+ import java.util.Optional;
24
24
  import java.util.regex.Pattern;
25
25
  import java.util.zip.GZIPInputStream;
26
26
  import java.util.zip.GZIPOutputStream;
@@ -176,7 +176,7 @@ public class FileList
176
176
  catch (IOException ex) {
177
177
  throw Throwables.propagate(ex);
178
178
  }
179
- return new FileList(binary.toByteArray(), getSplits(entries), Optional.fromNullable(last));
179
+ return new FileList(binary.toByteArray(), getSplits(entries), Optional.ofNullable(last));
180
180
  }
181
181
 
182
182
  private List<List<Entry>> getSplits(List<Entry> all)
@@ -11,7 +11,6 @@ import com.google.api.client.json.JsonFactory;
11
11
  import com.google.api.client.json.jackson2.JacksonFactory;
12
12
  import com.google.api.services.storage.Storage;
13
13
  import com.google.api.services.storage.StorageScopes;
14
- import com.google.common.base.Optional;
15
14
  import com.google.common.base.Throwables;
16
15
  import com.google.common.collect.ImmutableList;
17
16
  import org.embulk.config.ConfigException;
@@ -28,6 +27,7 @@ import java.io.IOException;
28
27
  import java.io.InterruptedIOException;
29
28
  import java.security.GeneralSecurityException;
30
29
  import java.util.Collections;
30
+ import java.util.Optional;
31
31
 
32
32
  public class GcsAuthentication
33
33
  {
@@ -74,7 +74,7 @@ public class GcsAuthentication
74
74
  return new GoogleCredential.Builder()
75
75
  .setTransport(httpTransport)
76
76
  .setJsonFactory(jsonFactory)
77
- .setServiceAccountId(serviceAccountEmail.orNull())
77
+ .setServiceAccountId(serviceAccountEmail.orElseGet(null))
78
78
  .setServiceAccountScopes(
79
79
  ImmutableList.of(
80
80
  StorageScopes.DEVSTORAGE_READ_ONLY
@@ -6,8 +6,6 @@ import com.google.api.services.storage.model.Bucket;
6
6
  import com.google.api.services.storage.model.Objects;
7
7
  import com.google.api.services.storage.model.StorageObject;
8
8
  import com.google.common.base.Charsets;
9
- import com.google.common.base.Function;
10
- import com.google.common.base.Optional;
11
9
  import com.google.common.io.BaseEncoding;
12
10
  import org.embulk.config.ConfigException;
13
11
  import org.embulk.config.TaskReport;
@@ -21,6 +19,8 @@ import java.io.IOException;
21
19
  import java.math.BigInteger;
22
20
  import java.security.GeneralSecurityException;
23
21
  import java.util.List;
22
+ import java.util.Optional;
23
+ import java.util.function.Function;
24
24
 
25
25
  public class GcsFileInput
26
26
  extends InputStreamFileInput
@@ -53,8 +53,8 @@ public class GcsFileInput
53
53
  return new GcsAuthentication(
54
54
  task.getAuthMethod().getString(),
55
55
  task.getServiceAccountEmail(),
56
- task.getP12Keyfile().transform(localFileToPathString()),
57
- task.getJsonKeyfile().transform(localFileToPathString()),
56
+ task.getP12Keyfile().map(localFileToPathString()),
57
+ task.getJsonKeyfile().map(localFileToPathString()),
58
58
  task.getApplicationName()
59
59
  );
60
60
  }
@@ -1,8 +1,6 @@
1
1
  package org.embulk.input.gcs;
2
2
 
3
3
  import com.google.api.services.storage.Storage;
4
- import com.google.common.base.Function;
5
- import com.google.common.base.Optional;
6
4
  import com.google.common.base.Throwables;
7
5
  import org.embulk.config.ConfigDiff;
8
6
  import org.embulk.config.ConfigException;
@@ -18,6 +16,8 @@ import org.slf4j.Logger;
18
16
  import java.io.IOException;
19
17
  import java.security.GeneralSecurityException;
20
18
  import java.util.List;
19
+ import java.util.Optional;
20
+ import java.util.function.Function;
21
21
 
22
22
  public class GcsFileInputPlugin
23
23
  implements FileInputPlugin
@@ -86,8 +86,8 @@ public class GcsFileInputPlugin
86
86
  return new GcsAuthentication(
87
87
  task.getAuthMethod().getString(),
88
88
  task.getServiceAccountEmail(),
89
- task.getP12Keyfile().transform(localFileToPathString()),
90
- task.getJsonKeyfile().transform(localFileToPathString()),
89
+ task.getP12Keyfile().map(localFileToPathString()),
90
+ task.getJsonKeyfile().map(localFileToPathString()),
91
91
  task.getApplicationName()
92
92
  );
93
93
  }
@@ -1,6 +1,5 @@
1
1
  package org.embulk.input.gcs;
2
2
 
3
- import com.google.common.base.Optional;
4
3
  import org.embulk.config.Config;
5
4
  import org.embulk.config.ConfigDefault;
6
5
  import org.embulk.config.ConfigInject;
@@ -9,6 +8,7 @@ import org.embulk.spi.BufferAllocator;
9
8
  import org.embulk.spi.unit.LocalFile;
10
9
 
11
10
  import java.util.List;
11
+ import java.util.Optional;
12
12
 
13
13
  public interface PluginTask
14
14
  extends Task, FileList.Task
@@ -5,6 +5,7 @@ import com.google.api.services.storage.Storage;
5
5
  import com.google.common.base.Throwables;
6
6
  import org.embulk.spi.Exec;
7
7
  import org.embulk.spi.util.InputStreamFileInput;
8
+ import org.embulk.spi.util.InputStreamFileInput.InputStreamWithHints;
8
9
  import org.embulk.spi.util.RetryExecutor;
9
10
  import org.slf4j.Logger;
10
11
 
@@ -14,7 +15,6 @@ import java.io.File;
14
15
  import java.io.FileInputStream;
15
16
  import java.io.FileOutputStream;
16
17
  import java.io.IOException;
17
- import java.io.InputStream;
18
18
  import java.util.Iterator;
19
19
 
20
20
  import static org.embulk.spi.util.RetryExecutor.retryExecutor;
@@ -38,7 +38,7 @@ public class SingleFileProvider
38
38
  }
39
39
 
40
40
  @Override
41
- public InputStream openNext() throws IOException
41
+ public InputStreamWithHints openNextWithHints() throws IOException
42
42
  {
43
43
  if (opened) {
44
44
  return null;
@@ -50,7 +50,10 @@ public class SingleFileProvider
50
50
  String key = iterator.next();
51
51
  File tempFile = Exec.getTempFileSpace().createTempFile();
52
52
  getRemoteContentsWithRetry(tempFile, client, bucket, key, maxConnectionRetry);
53
- return new BufferedInputStream(new FileInputStream(tempFile));
53
+ return new InputStreamWithHints(
54
+ new BufferedInputStream(new FileInputStream(tempFile)),
55
+ String.format("gcs://%s/%s", bucket, key)
56
+ );
54
57
  }
55
58
 
56
59
  @Override
@@ -2,7 +2,6 @@ package org.embulk.input.gcs;
2
2
 
3
3
  import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
4
4
  import com.google.api.services.storage.Storage;
5
- import com.google.common.base.Optional;
6
5
  import org.embulk.EmbulkTestRuntime;
7
6
  import org.embulk.config.ConfigException;
8
7
  import org.junit.BeforeClass;
@@ -14,6 +13,7 @@ import java.io.FileNotFoundException;
14
13
  import java.io.IOException;
15
14
  import java.lang.reflect.Field;
16
15
  import java.security.GeneralSecurityException;
16
+ import java.util.Optional;
17
17
 
18
18
  import static org.junit.Assert.assertEquals;
19
19
  import static org.junit.Assume.assumeNotNull;
@@ -1,7 +1,6 @@
1
1
  package org.embulk.input.gcs;
2
2
 
3
3
  import com.google.api.services.storage.Storage;
4
- import com.google.common.base.Optional;
5
4
  import com.google.common.collect.ImmutableList;
6
5
  import com.google.common.collect.ImmutableMap;
7
6
  import com.google.common.collect.Lists;
@@ -29,6 +28,7 @@ import java.security.GeneralSecurityException;
29
28
  import java.util.ArrayList;
30
29
  import java.util.Arrays;
31
30
  import java.util.List;
31
+ import java.util.Optional;
32
32
 
33
33
  import static org.junit.Assert.assertEquals;
34
34
  import static org.junit.Assume.assumeNotNull;
@@ -295,7 +295,7 @@ public class TestGcsFileInputPlugin
295
295
  method.setAccessible(true);
296
296
  Storage client = GcsFileInput.newGcsClient(task, (GcsAuthentication) method.invoke(plugin, task));
297
297
  FileList.Builder builder = new FileList.Builder(config);
298
- GcsFileInput.listGcsFilesByPrefix(builder, client, GCP_BUCKET, GCP_PATH_PREFIX, Optional.<String>absent());
298
+ GcsFileInput.listGcsFilesByPrefix(builder, client, GCP_BUCKET, GCP_PATH_PREFIX, Optional.empty());
299
299
  FileList fileList = builder.build();
300
300
  assertEquals(expected.get(0), fileList.get(0).get(0));
301
301
  assertEquals(expected.get(1), fileList.get(1).get(0));
@@ -325,7 +325,7 @@ public class TestGcsFileInputPlugin
325
325
  method.setAccessible(true);
326
326
  Storage client = GcsFileInput.newGcsClient(task, (GcsAuthentication) method.invoke(plugin, task));
327
327
  FileList.Builder builder = new FileList.Builder(configWithPattern);
328
- GcsFileInput.listGcsFilesByPrefix(builder, client, GCP_BUCKET, GCP_PATH_PREFIX, Optional.<String>absent());
328
+ GcsFileInput.listGcsFilesByPrefix(builder, client, GCP_BUCKET, GCP_PATH_PREFIX, Optional.empty());
329
329
  FileList fileList = builder.build();
330
330
  assertEquals(expected.get(0), fileList.get(0).get(0));
331
331
  assertEquals(GCP_BUCKET_DIRECTORY + "sample_01.csv", configDiff.get(String.class, "last_path"));
@@ -353,7 +353,7 @@ public class TestGcsFileInputPlugin
353
353
  method.setAccessible(true);
354
354
  Storage client = GcsFileInput.newGcsClient(task, (GcsAuthentication) method.invoke(plugin, task));
355
355
  FileList.Builder builder = new FileList.Builder(config);
356
- GcsFileInput.listGcsFilesByPrefix(builder, client, "non-exists-bucket", "prefix", Optional.<String>absent()); // no errors happens
356
+ GcsFileInput.listGcsFilesByPrefix(builder, client, "non-exists-bucket", "prefix", Optional.empty()); // no errors happens
357
357
  }
358
358
 
359
359
  @Test
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.8
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Satoshi Akama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-29 00:00:00.000000000 Z
11
+ date: 2018-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -57,6 +57,8 @@ files:
57
57
  - gradlew
58
58
  - gradlew.bat
59
59
  - lib/embulk/input/gcs.rb
60
+ - secretkeys.tar
61
+ - secretkeys.tar.enc
60
62
  - settings.gradle
61
63
  - src/main/java/org/embulk/input/gcs/FileList.java
62
64
  - src/main/java/org/embulk/input/gcs/GcsAuthentication.java
@@ -75,11 +77,11 @@ files:
75
77
  - classpath/commons-logging-1.1.1.jar
76
78
  - classpath/google-api-services-storage-v1-rev59-1.21.0.jar
77
79
  - classpath/google-http-client-1.21.0.jar
78
- - classpath/embulk-input-gcs-0.2.8.jar
79
80
  - classpath/google-oauth-client-1.21.0.jar
80
81
  - classpath/commons-codec-1.3.jar
81
82
  - classpath/google-http-client-jackson2-1.21.0.jar
82
83
  - classpath/httpcore-4.0.1.jar
84
+ - classpath/embulk-input-gcs-0.3.0.jar
83
85
  homepage: https://github.com/embulk/embulk-input-gcs
84
86
  licenses:
85
87
  - Apache-2.0