fluent-plugin-filter-list 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17bee9e79c216bfbdf746e8d7d089d229b2997bccf376d24c5e7311f1931f2b4
4
- data.tar.gz: b00d3238b9a8d775f5f1dc2e7fd03beedde536bc6894d38f22091395d3dde1bf
3
+ metadata.gz: a6ecc0716888d8def1ffa0bdc4906c27aa610b6892c12d81e04fbf5f6dacd49d
4
+ data.tar.gz: 682c3cc3a8b27a86bb0f4cf40cc2e994444e9369d49470c611d0e47cef057425
5
5
  SHA512:
6
- metadata.gz: c578ea80823b2c26e70a37cf63b3df24832bef79013fcd7e1c28cbf937d220130581bd2a382a6ef06b5c9d1b96838a12d154b1263512920214041cfdfe467ee5
7
- data.tar.gz: 513142ca73ebf949f94d3f22fea2deff6e5147ffea92d65687ce33c80c6217e9d70d47dc3ec53b47858a5edb725c1b43ba70334e0feece51971978ca9fe886f4
6
+ metadata.gz: c52e32c0fbf6c82410adab0de450957aa7fd2567d6d69e167c8e047c3e4f64ed464b8090134dc07c9e29e81c89cd1917db18039574d6d2e5e0453962d2ed2e1e
7
+ data.tar.gz: 82bea7aa160a072d49356ce8e4840345d27bd547b2993d49efcae588acc4042dd24097bb43787f05a3ac93e5a9e0f04e1c6f5b02b06dfb45e91047636717355e
@@ -35,7 +35,10 @@ Metrics/PerceivedComplexity:
35
35
  Style/GlobalVars:
36
36
  Exclude:
37
37
  - 'test/test_helper.rb'
38
- Style/MethodMissing:
38
+ Style/MethodMissingSuper:
39
+ Exclude:
40
+ - 'test/test_helper.rb'
41
+ Style/MissingRespondToMissing:
39
42
  Exclude:
40
43
  - 'test/test_helper.rb'
41
44
  Style/TernaryParentheses:
@@ -1,12 +1,12 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.10
4
- - 2.3.7
5
- - 2.4.4
6
- - 2.5.1
3
+ - 2.3
4
+ - 2.4
5
+ - 2.5
6
+ - 2.6
7
7
  before_install:
8
8
  - gem update --remote bundler
9
9
  - gem update --system
10
- - gem install rubocop
10
+ - gem install rubocop bundler
11
11
  script:
12
12
  - bundle exec rake
data/Gemfile CHANGED
@@ -4,4 +4,4 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  # Added at 2017-08-14 19:47:59 +0900 by 5hun:
7
- gem 'rubocop', '~> 0.54.0', group: [:development]
7
+ gem 'rubocop', '~> 0.62.0', require: false, group: [:development]
data/README.md CHANGED
@@ -35,7 +35,7 @@ Use the `filter_list` filter. Configure fluentd as follows.
35
35
 
36
36
  filter AC
37
37
  key_to_filter x
38
- patterns_file_path blacklist.txt
38
+ pattern_file_paths ["blacklist_1.txt", "blacklist_2.txt"]
39
39
  filter_empty true
40
40
  </filter>
41
41
  ```
@@ -82,7 +82,7 @@ Additionally, the following message is also omitted since `filter_empty` is `tru
82
82
 
83
83
  filter IP
84
84
  key_to_filter ip
85
- patterns_file_path blacklist.txt
85
+ pattern_file_paths blacklist.txt
86
86
  </filter>
87
87
  ```
88
88
 
@@ -130,7 +130,7 @@ The other use case is to filter messages likewise, but process the filtered mess
130
130
  @type filter_list
131
131
 
132
132
  key_to_filter field_name_you_want_to_filter
133
- patterns_file_path file_including_patterns_separated_by_new_line
133
+ pattern_file_paths ["file_including_patterns_separated_by_new_line"]
134
134
  filter_empty true
135
135
 
136
136
  <retag>
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ['lib']
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.16'
24
+ spec.add_development_dependency 'bundler', '~> 2.0'
25
25
  spec.add_development_dependency 'minitest', '~> 5.11'
26
26
  spec.add_development_dependency 'rake', '~> 12.3'
27
27
  spec.add_development_dependency 'test-unit', '~> 3.2'
@@ -13,18 +13,19 @@ module Fluent
13
13
 
14
14
  config_param :filter, :string, default: 'AC'
15
15
  config_param :key_to_filter, :string, default: nil
16
- config_param :patterns_file_path, :string, default: ''
16
+ config_param :pattern_file_paths, :array, default: [], value_type: :string
17
17
  config_param :filter_empty, :bool, default: false
18
18
 
19
19
  def configure(conf)
20
20
  super
21
- patterns = @patterns_file_path.empty? ? [] : File.readlines(@patterns_file_path).map(&:chomp).reject(&:empty?)
21
+ patterns = @pattern_file_paths.flat_map { |p| File.readlines(p).map(&:chomp).reject(&:empty?) }
22
22
  @matcher = (@filter == 'IP') ? IPMatcher.new(patterns) : ACMatcher.new(patterns)
23
23
  end
24
24
 
25
25
  def filter(_tag, _time, record)
26
26
  target = record[@key_to_filter]
27
27
  return nil if target && (@matcher.matches?(target) || (@filter_empty && target.strip.empty?))
28
+
28
29
  record
29
30
  end
30
31
  end
@@ -15,7 +15,7 @@ module Fluent
15
15
 
16
16
  config_param :filter, :string, default: 'AC'
17
17
  config_param :key_to_filter, :string, default: nil
18
- config_param :patterns_file_path, :string, default: ''
18
+ config_param :pattern_file_paths, :array, default: [], value_type: :string
19
19
  config_param :filter_empty, :bool, default: false
20
20
 
21
21
  config_section :retag, required: true, multi: false do
@@ -47,7 +47,7 @@ module Fluent
47
47
  def configure(conf)
48
48
  super
49
49
  [@retag, @retag_for_filtered].each { |c| validate c }
50
- patterns = @patterns_file_path.empty? ? [] : File.readlines(@patterns_file_path).map(&:chomp).reject(&:empty?)
50
+ patterns = @pattern_file_paths.flat_map { |p| File.readlines(p).map(&:chomp).reject(&:empty?) }
51
51
  @matcher = (@filter == 'IP') ? IPMatcher.new(patterns) : ACMatcher.new(patterns)
52
52
  configure_prefixes
53
53
  end
@@ -1,7 +1,7 @@
1
1
  module Fluent
2
2
  module Plugin
3
3
  module FilterList
4
- VERSION = "0.5.0"
4
+ VERSION = "0.6.0"
5
5
  end
6
6
  end
7
7
  end
@@ -32,6 +32,7 @@ module Matchers
32
32
 
33
33
  def matches?(text)
34
34
  return false if text.nil?
35
+
35
36
  ip = IPAddr.new(text).to_i.to_s(2).rjust(32, '0')
36
37
  trie.forward_match(ip)
37
38
  end
@@ -82,10 +83,12 @@ module Matchers
82
83
 
83
84
  def forward_match(pattern)
84
85
  return false if @root.children.empty?
86
+
85
87
  cur_node = @root
86
88
  pattern.chars.each do |char|
87
89
  return true if cur_node.children.empty?
88
90
  return false unless cur_node.children.key?(char)
91
+
89
92
  cur_node = cur_node.children[char]
90
93
  end
91
94
  true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-filter-list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shun Yanaura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-26 00:00:00.000000000 Z
11
+ date: 2019-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -130,8 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  requirements: []
133
- rubyforge_project:
134
- rubygems_version: 2.7.6
133
+ rubygems_version: 3.0.2
135
134
  signing_key:
136
135
  specification_version: 4
137
136
  summary: A fluentd output plugin to filter keywords from messages