fluent-plugin-parse_cookie 2.0.0 → 2.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 +4 -4
- data/lib/fluent/plugin/out_parse_cookie.rb +10 -7
- data/lib/fluent/plugin/parse_cookie/version.rb +1 -1
- data/test/helper.rb +5 -28
- data/test/plugin/test_out_parse_cookie.rb +153 -160
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 609bc0f797092a0521c149be25825b40a94cd994d27d6d88f269c047d28da687
|
4
|
+
data.tar.gz: 377a027cac3be66d402d49a37f2e4fa1f575c0ed68f81aa45b7adc91d88ad091
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f09e5e64a1f8a83fbaac8f6e20489fc06378b57c15edcd9c22efa8404e97b10d6cb8e9208c8a567729cf90a8cb06d52ad161ef529b0a2f43b4dbda1190c04403
|
7
|
+
data.tar.gz: 82191b0b26d5db309117dba03634923eb1e7971bead4aa44dc7e18bf099862611e4584cdad9f35a4c85129dbaf0427f8ebc3cace193d274271e52146c02b1c75
|
@@ -1,5 +1,7 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'fluent/plugin/output'
|
2
|
+
|
3
|
+
module Fluent::Plugin
|
4
|
+
class ParseCookieOutput < Fluent::Plugin::Output
|
3
5
|
Fluent::Plugin.register_output('parse_cookie', self)
|
4
6
|
config_param :key, :string
|
5
7
|
config_param :tag_prefix, :string, default: 'parsed_cookie.'
|
@@ -8,6 +10,8 @@ module Fluent
|
|
8
10
|
config_param :remove_cookie, :bool, default: false
|
9
11
|
config_param :sub_key, :string, default: nil
|
10
12
|
|
13
|
+
helpers :event_emitter
|
14
|
+
|
11
15
|
def initialize
|
12
16
|
super
|
13
17
|
require 'cgi'
|
@@ -28,21 +32,20 @@ module Fluent
|
|
28
32
|
super
|
29
33
|
end
|
30
34
|
|
31
|
-
def
|
35
|
+
def process(tag, es)
|
32
36
|
es.each do |time, record|
|
33
37
|
t = tag.dup
|
34
|
-
new_record = parse_cookie(record)
|
38
|
+
new_record = parse_cookie(record, tag)
|
35
39
|
|
36
40
|
t = @tag_prefix + t unless @tag_prefix.nil?
|
37
41
|
|
38
|
-
|
42
|
+
router.emit(t, time, new_record)
|
39
43
|
end
|
40
|
-
chain.next
|
41
44
|
rescue StandardError => e
|
42
45
|
log.warn("out_parse_cookie: error_class:#{e.class} error_message:#{e.message} tag:#{tag} es:#{es} bactrace:#{e.backtrace.first}")
|
43
46
|
end
|
44
47
|
|
45
|
-
def parse_cookie(record)
|
48
|
+
def parse_cookie(record, tag)
|
46
49
|
if record[key]
|
47
50
|
parsed_cookie = CGI::Cookie.parse(record[key])
|
48
51
|
hash = {}
|
data/test/helper.rb
CHANGED
@@ -1,28 +1,5 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
warn e.message
|
7
|
-
warn 'Run `bundle install` to install missing gems'
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
|
-
require 'test/unit'
|
11
|
-
|
12
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
|
-
require 'fluent/test'
|
15
|
-
unless ENV.key?('VERBOSE')
|
16
|
-
nulllogger = Object.new
|
17
|
-
nulllogger.instance_eval do |_obj|
|
18
|
-
def method_missing(method, *args)
|
19
|
-
# pass
|
20
|
-
end
|
21
|
-
end
|
22
|
-
$log = nulllogger
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'fluent/plugin/out_parse_cookie'
|
26
|
-
|
27
|
-
class Test::Unit::TestCase
|
28
|
-
end
|
1
|
+
require "bundler/setup"
|
2
|
+
require "test/unit"
|
3
|
+
$LOAD_PATH.unshift(File.join(__dir__, "..", "lib"))
|
4
|
+
$LOAD_PATH.unshift(__dir__)
|
5
|
+
require "fluent/test"
|
@@ -2,189 +2,182 @@ require 'helper'
|
|
2
2
|
require 'rr'
|
3
3
|
require 'pry-byebug'
|
4
4
|
require 'fluent/plugin/out_parse_cookie'
|
5
|
+
require 'fluent/test/driver/output'
|
6
|
+
require 'fluent/test/helpers'
|
5
7
|
|
6
8
|
class ParseCookieOutputTest < Test::Unit::TestCase
|
7
|
-
|
9
|
+
include Fluent::Test::Helpers
|
8
10
|
|
9
|
-
|
10
|
-
Fluent::Test.setup
|
11
|
-
end
|
11
|
+
COOKIE = 'temporary=tmp; empty=; __test=miahcel; array=123; array=abc; array=1a2b'.freeze
|
12
12
|
|
13
|
-
def create_driver(conf
|
14
|
-
Fluent::Test::
|
15
|
-
Fluent::ParseCookieOutput, tag
|
16
|
-
).configure(conf)
|
13
|
+
def create_driver(conf)
|
14
|
+
Fluent::Test::Driver::Output.new(Fluent::Plugin::ParseCookieOutput).configure(conf)
|
17
15
|
end
|
18
16
|
|
19
|
-
def
|
20
|
-
|
21
|
-
d.run { d.emit(record) }
|
22
|
-
d.emits
|
17
|
+
def setup
|
18
|
+
Fluent::Test.setup
|
23
19
|
end
|
24
20
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
sub_test_case 'configure' do
|
22
|
+
test 'configure' do
|
23
|
+
d = create_driver(%(
|
24
|
+
key cookie
|
25
|
+
))
|
29
26
|
|
30
|
-
|
31
|
-
|
32
|
-
|
27
|
+
assert_equal 'cookie', d.instance.key
|
28
|
+
assert_equal 'parsed_cookie.', d.instance.tag_prefix
|
29
|
+
assert_equal false, d.instance.remove_empty_array
|
30
|
+
end
|
33
31
|
end
|
34
32
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
assert_equal
|
49
|
-
assert_equal [],
|
50
|
-
assert_equal [
|
51
|
-
assert_equal
|
52
|
-
assert_equal
|
33
|
+
sub_test_case 'emit events' do
|
34
|
+
test 'parse_cookie' do
|
35
|
+
d = create_driver(%(
|
36
|
+
key cookie
|
37
|
+
))
|
38
|
+
time = event_time
|
39
|
+
|
40
|
+
d.run(default_tag: 'test') do
|
41
|
+
d.feed(time, { 'cookie' => COOKIE })
|
42
|
+
end
|
43
|
+
events = d.events
|
44
|
+
event = events.first
|
45
|
+
|
46
|
+
assert_equal 'parsed_cookie.test', event.first
|
47
|
+
assert_equal ['tmp'], event[2]['temporary']
|
48
|
+
assert_equal [], event[2]['empty']
|
49
|
+
assert_equal ['miahcel'], event[2]['__test']
|
50
|
+
assert_equal %w[123 abc 1a2b], event[2]['array']
|
51
|
+
assert_equal COOKIE, event[2]['cookie']
|
53
52
|
end
|
54
|
-
end
|
55
53
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
'
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
assert_equal 'parsed_cookie.test',
|
70
|
-
assert_equal ['tmp'],
|
71
|
-
assert_equal [],
|
72
|
-
assert_equal ['miahcel'],
|
73
|
-
assert_equal %w[123 abc 1a2b],
|
74
|
-
assert_equal nil,
|
54
|
+
test 'delete_cookie' do
|
55
|
+
d = create_driver(%(
|
56
|
+
key cookie
|
57
|
+
remove_cookie true
|
58
|
+
))
|
59
|
+
time = event_time
|
60
|
+
|
61
|
+
d.run(default_tag: 'test') do
|
62
|
+
d.feed(time, { 'cookie' => COOKIE })
|
63
|
+
end
|
64
|
+
events = d.events
|
65
|
+
event = events.first
|
66
|
+
|
67
|
+
assert_equal 'parsed_cookie.test', event.first
|
68
|
+
assert_equal ['tmp'], event[2]['temporary']
|
69
|
+
assert_equal [], event[2]['empty']
|
70
|
+
assert_equal ['miahcel'], event[2]['__test']
|
71
|
+
assert_equal %w[123 abc 1a2b], event[2]['array']
|
72
|
+
assert_equal nil, event[2]['cookie']
|
75
73
|
end
|
76
|
-
end
|
77
74
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
'
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
assert_equal 'add_tag.test',
|
92
|
-
assert_equal ['tmp'],
|
93
|
-
assert_equal [],
|
94
|
-
assert_equal ['miahcel'],
|
95
|
-
assert_equal %w[123 abc 1a2b],
|
96
|
-
assert_equal COOKIE,
|
75
|
+
test 'add_tag_prefix' do
|
76
|
+
d = create_driver(%(
|
77
|
+
key cookie
|
78
|
+
tag_prefix add_tag.
|
79
|
+
))
|
80
|
+
time = event_time
|
81
|
+
|
82
|
+
d.run(default_tag: 'test') do
|
83
|
+
d.feed(time, { 'cookie' => COOKIE })
|
84
|
+
end
|
85
|
+
events = d.events
|
86
|
+
event = events.first
|
87
|
+
|
88
|
+
assert_equal 'add_tag.test', event.first
|
89
|
+
assert_equal ['tmp'], event[2]['temporary']
|
90
|
+
assert_equal [], event[2]['empty']
|
91
|
+
assert_equal ['miahcel'], event[2]['__test']
|
92
|
+
assert_equal %w[123 abc 1a2b], event[2]['array']
|
93
|
+
assert_equal COOKIE, event[2]['cookie']
|
97
94
|
end
|
98
|
-
end
|
99
95
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
'
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
assert_equal 'parsed_cookie.test',
|
114
|
-
assert_equal ['tmp'],
|
115
|
-
assert_equal nil,
|
116
|
-
assert_equal ['miahcel'],
|
117
|
-
assert_equal %w[123 abc 1a2b],
|
118
|
-
assert_equal COOKIE,
|
96
|
+
test 'remove_empty_array' do
|
97
|
+
d = create_driver(%(
|
98
|
+
key cookie
|
99
|
+
remove_empty_array
|
100
|
+
))
|
101
|
+
time = event_time
|
102
|
+
|
103
|
+
d.run(default_tag: 'test') do
|
104
|
+
d.feed(time, { 'cookie' => COOKIE })
|
105
|
+
end
|
106
|
+
events = d.events
|
107
|
+
event = events.first
|
108
|
+
|
109
|
+
assert_equal 'parsed_cookie.test', event.first
|
110
|
+
assert_equal ['tmp'], event[2]['temporary']
|
111
|
+
assert_equal nil, event[2]['empty']
|
112
|
+
assert_equal ['miahcel'], event[2]['__test']
|
113
|
+
assert_equal %w[123 abc 1a2b], event[2]['array']
|
114
|
+
assert_equal COOKIE, event[2]['cookie']
|
119
115
|
end
|
120
|
-
end
|
121
116
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
'
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
assert_equal 'parsed_cookie.test',
|
136
|
-
assert_equal 'tmp',
|
137
|
-
assert_equal [],
|
138
|
-
assert_equal 'miahcel',
|
139
|
-
assert_equal %w[123 abc 1a2b],
|
140
|
-
assert_equal COOKIE,
|
117
|
+
test 'single_value_to_string' do
|
118
|
+
d = create_driver(%(
|
119
|
+
key cookie
|
120
|
+
single_value_to_string true
|
121
|
+
))
|
122
|
+
time = event_time
|
123
|
+
|
124
|
+
d.run(default_tag: 'test') do
|
125
|
+
d.feed(time, { 'cookie' => COOKIE })
|
126
|
+
end
|
127
|
+
events = d.events
|
128
|
+
event = events.first
|
129
|
+
|
130
|
+
assert_equal 'parsed_cookie.test', event.first
|
131
|
+
assert_equal 'tmp', event[2]['temporary']
|
132
|
+
assert_equal [], event[2]['empty']
|
133
|
+
assert_equal 'miahcel', event[2]['__test']
|
134
|
+
assert_equal %w[123 abc 1a2b], event[2]['array']
|
135
|
+
assert_equal COOKIE, event[2]['cookie']
|
141
136
|
end
|
142
|
-
end
|
143
137
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
'
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
assert_equal 'parsed_cookie.test',
|
159
|
-
assert_equal 'tmp',
|
160
|
-
assert_equal nil,
|
161
|
-
assert_equal 'miahcel',
|
162
|
-
assert_equal %w[123 abc 1a2b],
|
163
|
-
assert_equal COOKIE,
|
138
|
+
test 'remove_empty_array_single_value_to_string' do
|
139
|
+
d = create_driver(%(
|
140
|
+
key cookie
|
141
|
+
remove_empty_array true
|
142
|
+
single_value_to_string true
|
143
|
+
))
|
144
|
+
time = event_time
|
145
|
+
|
146
|
+
d.run(default_tag: 'test') do
|
147
|
+
d.feed(time, { 'cookie' => COOKIE })
|
148
|
+
end
|
149
|
+
events = d.events
|
150
|
+
event = events.first
|
151
|
+
|
152
|
+
assert_equal 'parsed_cookie.test', event.first
|
153
|
+
assert_equal 'tmp', event[2]['temporary']
|
154
|
+
assert_equal nil, event[2]['empty']
|
155
|
+
assert_equal 'miahcel', event[2]['__test']
|
156
|
+
assert_equal %w[123 abc 1a2b], event[2]['array']
|
157
|
+
assert_equal COOKIE, event[2]['cookie']
|
164
158
|
end
|
165
|
-
end
|
166
159
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
'
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
assert_equal 'parsed_cookie.test',
|
183
|
-
assert_equal 'tmp',
|
184
|
-
assert_equal nil,
|
185
|
-
assert_equal 'miahcel',
|
186
|
-
assert_equal %w[123 abc 1a2b],
|
187
|
-
assert_equal COOKIE,
|
160
|
+
test 'sub_key' do
|
161
|
+
d = create_driver(%(
|
162
|
+
key cookie
|
163
|
+
sub_key cookie_parsed
|
164
|
+
remove_empty_array true
|
165
|
+
single_value_to_string true
|
166
|
+
))
|
167
|
+
time = event_time
|
168
|
+
|
169
|
+
d.run(default_tag: 'test') do
|
170
|
+
d.feed(time, { 'cookie' => COOKIE })
|
171
|
+
end
|
172
|
+
events = d.events
|
173
|
+
event = events.first
|
174
|
+
|
175
|
+
assert_equal 'parsed_cookie.test', event.first
|
176
|
+
assert_equal 'tmp', event[2]['cookie_parsed']['temporary']
|
177
|
+
assert_equal nil, event[2]['cookie_parsed']['empty']
|
178
|
+
assert_equal 'miahcel', event[2]['cookie_parsed']['__test']
|
179
|
+
assert_equal %w[123 abc 1a2b], event[2]['cookie_parsed']['array']
|
180
|
+
assert_equal COOKIE, event[2]['cookie']
|
188
181
|
end
|
189
182
|
end
|
190
183
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-parse_cookie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hirokazu Hata
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|