fluent-plugin-sql 0.5.1 → 0.5.2
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/.travis.yml +15 -3
- data/Gemfile.v0.12 +6 -0
- data/VERSION +1 -1
- data/lib/fluent/plugin/in_sql.rb +3 -0
- data/lib/fluent/plugin/out_sql.rb +15 -5
- data/test/plugin/test_out_sql.rb +4 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca9f3bc9d2178bcaa84c466b45a1077f0fc5a2b6
|
4
|
+
data.tar.gz: 09e653873d5740e19f972ec4328709e20f90aada
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8d5c1f6860b0f76fb27d4a7b83bfeeb0404492005b198b89a73d8f885eed2a0fcf1118a40a63aa2015cb85e4a90b028c46d7058785b836acce61a4f20525e2e
|
7
|
+
data.tar.gz: f9abb12f48ce89a31bf3ac604e85e3315bccb8d39706d96f06296adcc9d10a464f3e81e79f9a3524b37f5a962734defa35d8dd358949287965db6929fecfad3a
|
data/.travis.yml
CHANGED
@@ -5,10 +5,15 @@ addons:
|
|
5
5
|
postgresql: "9.4"
|
6
6
|
|
7
7
|
rvm:
|
8
|
-
- 2.0
|
8
|
+
- 2.0
|
9
9
|
- 2.1
|
10
|
-
- 2.2
|
11
|
-
- 2.3.
|
10
|
+
- 2.2.4
|
11
|
+
- 2.3.1
|
12
|
+
- ruby-head
|
13
|
+
|
14
|
+
gemfile:
|
15
|
+
- Gemfile
|
16
|
+
- Gemfile.v0.12
|
12
17
|
|
13
18
|
before_install:
|
14
19
|
- gem install bundler
|
@@ -18,3 +23,10 @@ before_script:
|
|
18
23
|
- psql -U postgres -c "CREATE DATABASE fluentd_test OWNER fluentd;"
|
19
24
|
|
20
25
|
script: bundle exec rake test
|
26
|
+
|
27
|
+
matrix:
|
28
|
+
allow_failures:
|
29
|
+
- rvm: ruby-head
|
30
|
+
exclude:
|
31
|
+
- rvm: 2.0
|
32
|
+
gemfile: Gemfile
|
data/Gemfile.v0.12
ADDED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/lib/fluent/plugin/in_sql.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "fluent/output"
|
2
|
+
|
1
3
|
module Fluent
|
2
4
|
class SQLOutput < BufferedOutput
|
3
5
|
Plugin.register_output('sql', self)
|
@@ -29,6 +31,8 @@ module Fluent
|
|
29
31
|
config_param :socket, :string, :default => nil
|
30
32
|
desc 'remove the given prefix from the events'
|
31
33
|
config_param :remove_tag_prefix, :string, :default => nil
|
34
|
+
desc 'enable fallback'
|
35
|
+
config_param :enable_fallback, :bool, :default => true
|
32
36
|
|
33
37
|
attr_accessor :tables
|
34
38
|
|
@@ -47,10 +51,11 @@ module Fluent
|
|
47
51
|
attr_reader :model
|
48
52
|
attr_reader :pattern
|
49
53
|
|
50
|
-
def initialize(pattern, log)
|
54
|
+
def initialize(pattern, log, enable_fallback)
|
51
55
|
super()
|
52
56
|
@pattern = MatchPattern.create(pattern)
|
53
57
|
@log = log
|
58
|
+
@enable_fallback = enable_fallback
|
54
59
|
end
|
55
60
|
|
56
61
|
def configure(conf)
|
@@ -97,9 +102,14 @@ module Fluent
|
|
97
102
|
begin
|
98
103
|
@model.import(records)
|
99
104
|
rescue ActiveRecord::StatementInvalid, ActiveRecord::Import::MissingColumnError => e
|
100
|
-
|
101
|
-
|
102
|
-
|
105
|
+
if @enable_fallback
|
106
|
+
# ignore other exceptions to use Fluentd retry mechanizm
|
107
|
+
@log.warn "Got deterministic error. Fallback to one-by-one import", :error => e.message, :error_class => e.class
|
108
|
+
one_by_one_import(records)
|
109
|
+
else
|
110
|
+
$log.warn "Got deterministic error. Fallback is disabled", :error => e.message, :error_class => e.class
|
111
|
+
raise e
|
112
|
+
end
|
103
113
|
end
|
104
114
|
end
|
105
115
|
|
@@ -155,7 +165,7 @@ module Fluent
|
|
155
165
|
conf.elements.select { |e|
|
156
166
|
e.name == 'table'
|
157
167
|
}.each { |e|
|
158
|
-
te = TableElement.new(e.arg, log)
|
168
|
+
te = TableElement.new(e.arg, log, @enable_fallback)
|
159
169
|
te.configure(e)
|
160
170
|
if e.arg.empty?
|
161
171
|
$log.warn "Detect duplicate default table definition" if @default_table
|
data/test/plugin/test_out_sql.rb
CHANGED
@@ -38,7 +38,8 @@ class SqlOutputTest < Test::Unit::TestCase
|
|
38
38
|
database: "fluentd_test",
|
39
39
|
username: "fluentd",
|
40
40
|
password: "fluentd",
|
41
|
-
remove_tag_suffix: /^db
|
41
|
+
remove_tag_suffix: /^db/,
|
42
|
+
enable_fallback: true
|
42
43
|
}
|
43
44
|
actual = {
|
44
45
|
host: d.instance.host,
|
@@ -47,7 +48,8 @@ class SqlOutputTest < Test::Unit::TestCase
|
|
47
48
|
database: d.instance.database,
|
48
49
|
username: d.instance.username,
|
49
50
|
password: d.instance.password,
|
50
|
-
remove_tag_suffix: d.instance.remove_tag_prefix
|
51
|
+
remove_tag_suffix: d.instance.remove_tag_prefix,
|
52
|
+
enable_fallback: d.instance.enable_fallback
|
51
53
|
}
|
52
54
|
assert_equal(expected, actual)
|
53
55
|
assert_empty(d.instance.tables)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-sql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -136,6 +136,7 @@ extra_rdoc_files: []
|
|
136
136
|
files:
|
137
137
|
- ".travis.yml"
|
138
138
|
- Gemfile
|
139
|
+
- Gemfile.v0.12
|
139
140
|
- README.md
|
140
141
|
- Rakefile
|
141
142
|
- VERSION
|