embulk-input-remote 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +19 -5
- data/.gitignore +0 -1
- data/README.md +28 -25
- data/build.gradle +13 -10
- data/classpath/bcpkix-jdk15on-1.57.jar +0 -0
- data/classpath/bcprov-jdk15on-1.57.jar +0 -0
- data/classpath/eddsa-0.2.0.jar +0 -0
- data/classpath/embulk-input-remote-0.4.0.jar +0 -0
- data/classpath/kotlin-stdlib-1.2.31.jar +0 -0
- data/classpath/sshj-0.24.0.jar +0 -0
- data/docker-compose.yml +5 -5
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +1 -2
- data/gradle.properties +1 -1
- data/gradlew +3 -3
- data/src/test/kotlin/org/embulk/input/remote/TestRemoteFileInputPlugin.kt +2 -3
- data/src/test/resources/yaml/base.yml +2 -2
- metadata +8 -9
- data/Dockerfile +0 -17
- data/classpath/bcpkix-jdk15on-1.51.jar +0 -0
- data/classpath/bcprov-jdk15on-1.51.jar +0 -0
- data/classpath/eddsa-0.1.0.jar +0 -0
- data/classpath/embulk-input-remote-0.3.3.jar +0 -0
- data/classpath/kotlin-stdlib-1.1.1.jar +0 -0
- data/classpath/sshj-0.19.1.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24bb3008bbdbe51c44da96c8b15ff08cbeac29ff
|
4
|
+
data.tar.gz: 3295982e957968931d6c5803377ad41b0db4349e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09f523ee72f8ff8a827741439390320aab48f948d68bd8a1aae5e45404335b060d172c5d6859143621439748c61e5d2e70b3e370d00a0fe391e53ce922444efa
|
7
|
+
data.tar.gz: 8edb2b6b79faac14ab323b9038388c55a222d9fa6e7ef7d7a21b88a3129e30c41861e10e963fb02a8389ed849833f4176f354dc9971843b8cf70988fa538eb13
|
data/.circleci/config.yml
CHANGED
@@ -7,18 +7,32 @@ jobs:
|
|
7
7
|
steps:
|
8
8
|
- checkout
|
9
9
|
|
10
|
-
- run: ssh-keygen -t ecdsa -f id_rsa_test -N ''
|
11
10
|
- run: docker-compose up -d
|
12
11
|
- run: docker-compose ps
|
13
|
-
|
12
|
+
- run: |
|
13
|
+
docker cp $(docker inspect --format="{{.Id}}" embulk-input-remote_host1):/home/ubuntu/.ssh/id_rsa_test . && \
|
14
|
+
chmod 400 id_rsa_test
|
14
15
|
- restore_cache:
|
15
|
-
key:
|
16
|
+
key: v1-gradle-{{ checksum "build.gradle" }}
|
17
|
+
key: v1-gradle-
|
16
18
|
- run: ./gradlew checkstyle
|
17
|
-
- run: ./gradlew check --
|
19
|
+
- run: ./gradlew check --info
|
20
|
+
- run:
|
21
|
+
name: Save test results
|
22
|
+
command: |
|
23
|
+
mkdir -p ~/junit/
|
24
|
+
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/junit/ \;
|
25
|
+
when: always
|
26
|
+
- store_test_results:
|
27
|
+
path: ~/junit
|
28
|
+
- store_artifacts:
|
29
|
+
path: ~/junit
|
30
|
+
|
18
31
|
- save_cache:
|
19
32
|
paths:
|
20
33
|
- "~/.gradle"
|
21
|
-
|
34
|
+
- "~/.m2"
|
35
|
+
key: v1-gradle-{{ checksum "build.gradle" }}
|
22
36
|
|
23
37
|
- deploy:
|
24
38
|
name: Push Gem to RubyGems.org and bump up
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[![
|
1
|
+
[![CircleCI](https://circleci.com/gh/kamatama41/embulk-input-remote.svg?style=svg)](https://circleci.com/gh/kamatama41/embulk-input-remote)
|
2
2
|
|
3
3
|
# Remote file input plugin for [Embulk](https://github.com/embulk/embulk)
|
4
4
|
|
@@ -12,21 +12,21 @@ This plugin load data from Remote hosts by SCP
|
|
12
12
|
|
13
13
|
## Configuration
|
14
14
|
|
15
|
-
- **hosts**: Target hosts, format should be `
|
16
|
-
- **hosts_command**: Command
|
17
|
-
- **hosts_separator**: Separator for
|
18
|
-
- **default_port**:
|
19
|
-
- **path**:
|
20
|
-
- **path_command**: Command
|
21
|
-
- **ignore_not_found_hosts**: If
|
22
|
-
- Target file (or directory)
|
23
|
-
-
|
15
|
+
- **hosts**: Target hosts, its format should be `hostname` or `hostname:port` (its `port` overrides `default_port`) (list, default: [])
|
16
|
+
- **hosts_command**: Command to get `hosts` (Windows not supported). If given the option, `hosts` is overwritten. (string, default: null)
|
17
|
+
- **hosts_separator**: Separator for `hosts_command` result (string, default: " ")
|
18
|
+
- **default_port**: Port number for SSH (integer, default: 22)
|
19
|
+
- **path**: File or directory path of remote host (string, default: "")
|
20
|
+
- **path_command**: Command to get `path` (Windows not supported). If given the option, `path` is overwritten. (string, default: null)
|
21
|
+
- **ignore_not_found_hosts**: If true, hosts that meet the following conditions are skipped, which means they are not included into the the target of resuming.) (boolean, default: false)
|
22
|
+
- Target file (or directory) is not found
|
23
|
+
- An error that is related to SSH connectivity occurred
|
24
24
|
- **auth**: SSH authentication setting (hash, default: {})
|
25
|
-
- **user**: SSH username (string, default:
|
26
|
-
- **type**: public_key or password (string, default: public_key)
|
27
|
-
- **key_path**: Path of secret key (
|
28
|
-
- **password**:
|
29
|
-
- **skip_host_key_verification**: If
|
25
|
+
- **user**: SSH username (string, default: current user)
|
26
|
+
- **type**: `public_key` or `password` (string, default: public_key)
|
27
|
+
- **key_path**: Path of your secret key (required when you choose `public_key` type) (string, default: `~/.ssh/id_rsa` or `id_dsa`")
|
28
|
+
- **password**: Password of the `user` (required when you choose `password` type) (string)
|
29
|
+
- **skip_host_key_verification**: If true, verification of host key will be skipped (boolean, default: false)
|
30
30
|
|
31
31
|
## Example
|
32
32
|
|
@@ -50,8 +50,8 @@ in:
|
|
50
50
|
```
|
51
51
|
|
52
52
|
## Note
|
53
|
-
When this plugin
|
54
|
-
|
53
|
+
When running Embulk with this plugin on Linux, it might be blocked due to SecureRandom. Please try one of followings to resolve it.
|
54
|
+
(Note: it makes SecureRandom more insecure than default)
|
55
55
|
|
56
56
|
### set JVM_OPTION "-Djava.security.egd"
|
57
57
|
|
@@ -60,10 +60,9 @@ $ export JAVA_TOOL_OPTIONS="-Djava.security.egd=file:/dev/./urandom"
|
|
60
60
|
$ embulk run config.yml
|
61
61
|
```
|
62
62
|
|
63
|
-
###
|
64
|
-
|
63
|
+
### Update "securerandom.source" in ${JAVA_HOME}/jre/lib/security/java.security
|
65
64
|
```
|
66
|
-
# securerandom.source=file:/dev/random
|
65
|
+
# securerandom.source=file:/dev/random # before
|
67
66
|
securerandom.source=file:/dev/./urandom # after
|
68
67
|
```
|
69
68
|
|
@@ -72,15 +71,19 @@ securerandom.source=file:/dev/./urandom # after
|
|
72
71
|
http://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom
|
73
72
|
|
74
73
|
## Development on local machine
|
75
|
-
|
74
|
+
Install Docker and Docker compose so that you can start SSH-able containers and run tests.
|
75
|
+
|
76
76
|
```sh
|
77
|
-
$ ssh-keygen -t ecdsa -f ./id_rsa_test -N ''
|
78
77
|
$ docker-compose up -d
|
79
78
|
$ docker-compose ps
|
80
|
-
Name Command State Ports
|
79
|
+
Name Command State Ports
|
81
80
|
--------------------------------------------------------------------------
|
82
|
-
|
83
|
-
|
81
|
+
embulk-input-remote_host1 /entrypoint.sh Up 0.0.0.0:10022->22/tcp
|
82
|
+
embulk-input-remote_host2 /entrypoint.sh Up 0.0.0.0:10023->22/tcp
|
83
|
+
|
84
|
+
$ docker cp $(docker inspect --format="{{.Id}}" embulk-input-remote_host1):/home/ubuntu/.ssh/id_rsa_test .
|
85
|
+
$ chmod 400 id_rsa_test
|
86
|
+
$ ./gradlew test
|
84
87
|
```
|
85
88
|
|
86
89
|
## Build
|
data/build.gradle
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
buildscript {
|
2
|
-
ext.kotlinVersion = '1.1.1'
|
3
2
|
repositories {
|
4
|
-
mavenCentral()
|
5
3
|
jcenter()
|
6
4
|
maven { url 'http://kamatama41.github.com/maven-repository/repository' }
|
7
5
|
}
|
8
6
|
dependencies {
|
9
|
-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
10
7
|
classpath "com.github.kamatama41:gradle-embulk-plugin:0.1.4"
|
11
8
|
classpath "net.researchgate:gradle-release:2.5.0"
|
12
9
|
}
|
13
10
|
}
|
14
11
|
|
15
|
-
|
12
|
+
plugins {
|
13
|
+
id "org.jetbrains.kotlin.jvm" version "1.2.31"
|
14
|
+
}
|
16
15
|
apply plugin: "com.github.kamatama41.embulk"
|
17
16
|
apply plugin: "net.researchgate.release"
|
18
17
|
|
@@ -25,19 +24,19 @@ repositories {
|
|
25
24
|
maven { url 'http://kamatama41.github.com/maven-repository/repository' }
|
26
25
|
}
|
27
26
|
|
28
|
-
sourceCompatibility = 1.
|
29
|
-
targetCompatibility = 1.
|
27
|
+
sourceCompatibility = 1.8
|
28
|
+
targetCompatibility = 1.8
|
30
29
|
|
31
30
|
dependencies {
|
32
|
-
compile "org.jetbrains.kotlin:kotlin-stdlib
|
33
|
-
compile "com.hierynomus:sshj:0.
|
31
|
+
compile "org.jetbrains.kotlin:kotlin-stdlib"
|
32
|
+
compile "com.hierynomus:sshj:0.24.0"
|
34
33
|
compile "com.jcraft:jzlib:1.1.3"
|
35
|
-
testCompile "com.github.kamatama41:embulk-test-helpers:0.
|
34
|
+
testCompile "com.github.kamatama41:embulk-test-helpers:0.4.0"
|
36
35
|
testCompile "com.github.docker-java:docker-java:3.0.7"
|
37
36
|
}
|
38
37
|
|
39
38
|
embulk {
|
40
|
-
version = "0.
|
39
|
+
version = "0.9.7"
|
41
40
|
category = "file-input"
|
42
41
|
name = "remote"
|
43
42
|
authors = ["Shinichi Ishimura"]
|
@@ -47,6 +46,10 @@ embulk {
|
|
47
46
|
homepage = "https://github.com/kamatama41/embulk-input-remote"
|
48
47
|
}
|
49
48
|
|
49
|
+
test {
|
50
|
+
jvmArgs '-Djava.security.egd=file:/dev/./urandom'
|
51
|
+
}
|
52
|
+
|
50
53
|
release {
|
51
54
|
git { requireBranch = 'master' }
|
52
55
|
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/docker-compose.yml
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
version: '
|
1
|
+
version: '3'
|
2
2
|
services:
|
3
3
|
host1:
|
4
|
-
|
4
|
+
container_name: embulk-input-remote_host1
|
5
|
+
image: "kamatama41/ubuntu-sshd"
|
5
6
|
ports:
|
6
7
|
- "10022:22"
|
7
8
|
volumes:
|
8
9
|
- ./src/test/resources/input/host1/:/mount
|
9
|
-
- ./id_rsa_test.pub:/root/.ssh/authorized_keys
|
10
10
|
host2:
|
11
|
-
|
11
|
+
container_name: embulk-input-remote_host2
|
12
|
+
image: "kamatama41/ubuntu-sshd"
|
12
13
|
ports:
|
13
14
|
- "10023:22"
|
14
15
|
volumes:
|
15
16
|
- ./src/test/resources/input/host2/:/mount
|
16
|
-
- ./id_rsa_test.pub:/root/.ssh/authorized_keys
|
Binary file
|
@@ -1,6 +1,5 @@
|
|
1
|
-
#Thu Feb 02 08:54:57 JST 2017
|
2
1
|
distributionBase=GRADLE_USER_HOME
|
3
2
|
distributionPath=wrapper/dists
|
4
3
|
zipStoreBase=GRADLE_USER_HOME
|
5
4
|
zipStorePath=wrapper/dists
|
6
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-
|
5
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip
|
data/gradle.properties
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version=0.
|
1
|
+
version=0.4.0
|
data/gradlew
CHANGED
@@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS=""
|
|
33
33
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
34
34
|
MAX_FD="maximum"
|
35
35
|
|
36
|
-
warn (
|
36
|
+
warn () {
|
37
37
|
echo "$*"
|
38
38
|
}
|
39
39
|
|
40
|
-
die (
|
40
|
+
die () {
|
41
41
|
echo
|
42
42
|
echo "$*"
|
43
43
|
echo
|
@@ -155,7 +155,7 @@ if $cygwin ; then
|
|
155
155
|
fi
|
156
156
|
|
157
157
|
# Escape application args
|
158
|
-
save (
|
158
|
+
save () {
|
159
159
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
160
160
|
echo " "
|
161
161
|
}
|
@@ -37,7 +37,6 @@ class TestRemoteFileInputPlugin : EmbulkPluginTest() {
|
|
37
37
|
assertRecords(record(1, "user1"))
|
38
38
|
}
|
39
39
|
|
40
|
-
@Ignore("Cannot pass on TravisCI, although pass on Local Mac OS...")
|
41
40
|
@Test fun loadFromRemoteViaPublicKey() {
|
42
41
|
val keyPath = System.getenv("KEY_PATH") ?: "./id_rsa_test"
|
43
42
|
|
@@ -159,8 +158,8 @@ class TestRemoteFileInputPlugin : EmbulkPluginTest() {
|
|
159
158
|
}
|
160
159
|
|
161
160
|
companion object DockerUtils {
|
162
|
-
private val CONTAINER_ID_HOST1 = "
|
163
|
-
private val CONTAINER_ID_HOST2 = "
|
161
|
+
private const val CONTAINER_ID_HOST1 = "embulk-input-remote_host1"
|
162
|
+
private const val CONTAINER_ID_HOST2 = "embulk-input-remote_host2"
|
164
163
|
private val dockerClient = DockerClientBuilder.getInstance().build()
|
165
164
|
|
166
165
|
private fun stopContainer(containerId: String) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-input-remote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shinichi Ishimura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -47,7 +47,6 @@ extra_rdoc_files: []
|
|
47
47
|
files:
|
48
48
|
- .circleci/config.yml
|
49
49
|
- .gitignore
|
50
|
-
- Dockerfile
|
51
50
|
- LICENSE.txt
|
52
51
|
- README.md
|
53
52
|
- build.gradle
|
@@ -70,14 +69,14 @@ files:
|
|
70
69
|
- src/test/resources/input/host2/test_command.csv
|
71
70
|
- src/test/resources/script/hosts.sh
|
72
71
|
- src/test/resources/yaml/base.yml
|
73
|
-
- classpath/
|
74
|
-
- classpath/
|
72
|
+
- classpath/bcpkix-jdk15on-1.57.jar
|
73
|
+
- classpath/kotlin-stdlib-1.2.31.jar
|
74
|
+
- classpath/sshj-0.24.0.jar
|
75
75
|
- classpath/jzlib-1.1.3.jar
|
76
|
-
- classpath/
|
76
|
+
- classpath/eddsa-0.2.0.jar
|
77
|
+
- classpath/embulk-input-remote-0.4.0.jar
|
77
78
|
- classpath/annotations-13.0.jar
|
78
|
-
- classpath/
|
79
|
-
- classpath/eddsa-0.1.0.jar
|
80
|
-
- classpath/kotlin-stdlib-1.1.1.jar
|
79
|
+
- classpath/bcprov-jdk15on-1.57.jar
|
81
80
|
homepage: https://github.com/kamatama41/embulk-input-remote
|
82
81
|
licenses:
|
83
82
|
- MIT
|
data/Dockerfile
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# Deprecated
|
2
|
-
## ref: https://docs.docker.com/engine/examples/running_ssh_service/
|
3
|
-
#FROM ubuntu:16.04
|
4
|
-
#
|
5
|
-
#RUN apt-get update && apt-get install -y openssh-server
|
6
|
-
#RUN mkdir /var/run/sshd
|
7
|
-
#RUN echo 'root:screencast' | chpasswd
|
8
|
-
#RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
9
|
-
#
|
10
|
-
## SSH login fix. Otherwise user is kicked off after login
|
11
|
-
#RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
|
12
|
-
#
|
13
|
-
#ENV NOTVISIBLE "in users profile"
|
14
|
-
#RUN echo "export VISIBLE=now" >> /etc/profile
|
15
|
-
#
|
16
|
-
#EXPOSE 22
|
17
|
-
#CMD ["/usr/sbin/sshd", "-D"]
|
Binary file
|
Binary file
|
data/classpath/eddsa-0.1.0.jar
DELETED
Binary file
|
Binary file
|
Binary file
|
data/classpath/sshj-0.19.1.jar
DELETED
Binary file
|