fluent-plugin-map 0.0.6 → 0.1.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: b302dc881feff3cac6eaeb20d2fb12f9ad1ae4a1
4
- data.tar.gz: c3112052a37a51f54261c3fb8f7d5ca1261c20e2
3
+ metadata.gz: a4ad3a04fd6a20ad899c5bbcdc8677c4a168d99e
4
+ data.tar.gz: e71017da3b0fc6996bd61cda02a65250115e0c0d
5
5
  SHA512:
6
- metadata.gz: f44a0174b92c370bfa09516e8cf4eb1fec642c72811c9b40d338dcbcae71fc1c995b45e8f1fdcee7990ba64af1226406f74e0b7eccbbfdb462389cebf80fa630
7
- data.tar.gz: 902ad79813947cc1710a3afe161ecb102372061904982d1a86afef26bbaf675e9ef33f6b3f6f1fd824507f0a13acc2a25fda484feb217533e3babeea37138248
6
+ metadata.gz: b31eac601f6eaca70e7a13248ffd0d9933577e457358a41ad52cda3652d79fa4d13e2295d126d86a8a543bd77f363e60a52042fc3af76f2e5cc2a74e9d564649
7
+ data.tar.gz: cae9c24f03345592f87087e3ac1ab1f5557bbc57cd3825fea2c94a94956e4201f0771f4d5dcde31e53c54e761eb8f3f239c1e4f3025c279dc1b3001a6334e7bc
@@ -1,6 +1,6 @@
1
1
  # fluent-plugin-map
2
2
 
3
- [![Build Status](https://travis-ci.org/tomity/fluent-plugin-map.svg?branch=master)](https://travis-ci.org/tomity/fluent-plugin-map)
3
+ [![Build Status](https://travis-ci.org/fluent-plugins-nursery/fluent-plugin-map.svg?branch=master)](https://travis-ci.org/fluent-plugins-nursery/fluent-plugin-map)
4
4
 
5
5
  fluent-plugin-map(out\_map) is the non-buffered plugin that can convert an event log to different event log(s)
6
6
 
@@ -3,10 +3,10 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "fluent-plugin-map"
6
- s.version = "0.0.6"
7
- s.authors = ["Kohei Tomita"]
8
- s.email = ["tommy.fmale@gmail.com"]
9
- s.homepage = "https://github.com/tomity/fluent-plugin-map"
6
+ s.version = "0.1.0"
7
+ s.authors = ["Kohei Tomita", "Hiroshi Hatake", "Kenji Okomoto"]
8
+ s.email = ["tommy.fmale@gmail.com", "cosmo0920.oucc@gmail.com", "okkez000@gmail.com"]
9
+ s.homepage = "https://github.com/fluent-plugins-nursery/fluent-plugin-map"
10
10
  s.summary = %q{fluent-plugin-map is the non-buffered plugin that can convert an event log to different event log(s). }
11
11
  s.description = %q{fluent-plugin-map is the non-buffered plugin that can convert an event log to different event log(s). }
12
12
 
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ["lib"]
19
+ s.license = "Apache-2.0"
19
20
 
20
21
  s.add_development_dependency "rake"
21
22
  s.add_development_dependency "fluentd", [">= 0.10.24", "< 2"]
@@ -1,3 +1,18 @@
1
+ #
2
+ # fluent-plugin-map
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
1
16
 
2
17
  module Fluent
3
18
  class MapOutput < Fluent::Output
@@ -8,6 +23,10 @@ module Fluent
8
23
  define_method("router") { Fluent::Engine }
9
24
  end
10
25
 
26
+ unless method_defined?(:log)
27
+ define_method("log") { $log }
28
+ end
29
+
11
30
  config_param :map, :string, :default => nil
12
31
  config_param :tag, :string, :default => nil
13
32
  config_param :key, :string, :default => nil #deprecated
@@ -24,6 +43,11 @@ module Fluent
24
43
  @format = determine_format()
25
44
  configure_format()
26
45
  @map = create_map(conf)
46
+ singleton_class.module_eval(<<-CODE)
47
+ def map_func(tag, time, record)
48
+ #{@map}
49
+ end
50
+ CODE
27
51
  end
28
52
 
29
53
  def determine_format()
@@ -110,7 +134,7 @@ module Fluent
110
134
  tag_output_es
111
135
  rescue SyntaxError => e
112
136
  chain.next
113
- $log.error "map command is syntax error: #{@map}"
137
+ log.error "map command is syntax error: #{@map}"
114
138
  e #for test
115
139
  end
116
140
  end
@@ -124,7 +148,7 @@ module Fluent
124
148
  raise SyntaxError.new
125
149
  end
126
150
  tag_output_es[tag].add(time, record)
127
- $log.trace { [tag, time, record].inspect }
151
+ log.trace { [tag, time, record].inspect }
128
152
  end
129
153
  tag_output_es
130
154
  end
@@ -132,7 +156,7 @@ module Fluent
132
156
  def generate_tuples(tag, es)
133
157
  tuples = []
134
158
  es.each {|time, record|
135
- new_tuple = eval(@map)
159
+ new_tuple = map_func(tag, time, record)
136
160
  tuples.concat new_tuple
137
161
  }
138
162
  tuples
@@ -144,7 +168,7 @@ module Fluent
144
168
  yield
145
169
  }
146
170
  rescue Timeout::Error
147
- $log.error {"Timeout: #{Time.at(time)} #{tag} #{record.inspect}"}
171
+ log.error {"Timeout: #{Time.at(time)} #{tag} #{record.inspect}"}
148
172
  end
149
173
  end
150
174
  end
@@ -57,11 +57,9 @@ class MapOutputTest < Test::Unit::TestCase
57
57
  syntax_error_config = %[
58
58
  map tag.
59
59
  ]
60
- d1 = create_driver(syntax_error_config, tag)
61
- es = Fluent::OneEventStream.new(time, record)
62
- chain = Fluent::Test::TestOutputChain.new
63
- e = d1.instance.emit(tag, es, chain)
64
- assert e.kind_of?(SyntaxError)
60
+ assert_raise SyntaxError do
61
+ d1 = create_driver(syntax_error_config, tag)
62
+ end
65
63
  end
66
64
 
67
65
  def test_syntax_error2
@@ -173,22 +171,19 @@ class MapOutputTest < Test::Unit::TestCase
173
171
  }
174
172
  end
175
173
 
176
- def test_timeout
174
+ def test_config_error_sleep
177
175
  tag = 'tag'
178
176
  time = Time.local(2012, 10, 10, 10, 10, 10).to_i
179
177
  record = {'code' => '300'}
180
178
 
181
- d1 = create_driver %[
182
- key "newtag"
183
- time sleep 10
184
- record record
185
- timeout 1s
186
- ], tag
187
- d1.run do
188
- d1.emit(record, time)
189
- end
190
- emits = d1.emits
191
- assert_equal 0, emits.length
179
+ assert_raise(SyntaxError) {
180
+ create_driver %[
181
+ key "newtag"
182
+ time sleep 10
183
+ record record
184
+ timeout 1s
185
+ ], tag
186
+ }
192
187
  end
193
188
 
194
189
  # Add format test
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-map
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kohei Tomita
8
+ - Hiroshi Hatake
9
+ - Kenji Okomoto
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2016-06-18 00:00:00.000000000 Z
13
+ date: 2017-03-10 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: rake
@@ -76,6 +78,8 @@ description: 'fluent-plugin-map is the non-buffered plugin that can convert an e
76
78
  log to different event log(s). '
77
79
  email:
78
80
  - tommy.fmale@gmail.com
81
+ - cosmo0920.oucc@gmail.com
82
+ - okkez000@gmail.com
79
83
  executables: []
80
84
  extensions: []
81
85
  extra_rdoc_files: []
@@ -94,8 +98,9 @@ files:
94
98
  - lib/fluent/plugin/out_map.rb
95
99
  - test/helper.rb
96
100
  - test/plugin/test_out_map.rb
97
- homepage: https://github.com/tomity/fluent-plugin-map
98
- licenses: []
101
+ homepage: https://github.com/fluent-plugins-nursery/fluent-plugin-map
102
+ licenses:
103
+ - Apache-2.0
99
104
  metadata: {}
100
105
  post_install_message:
101
106
  rdoc_options: []
@@ -113,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
118
  version: '0'
114
119
  requirements: []
115
120
  rubyforge_project: fluent-plugin-map
116
- rubygems_version: 2.2.2
121
+ rubygems_version: 2.6.8
117
122
  signing_key:
118
123
  specification_version: 4
119
124
  summary: fluent-plugin-map is the non-buffered plugin that can convert an event log