fluent-plugin-geoip 0.8.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -4
- data/Appraisals +0 -9
- data/README.md +92 -31
- data/dockerfiles/Dockerfile-ruby2.1 +1 -1
- data/dockerfiles/Dockerfile-ruby2.2 +1 -1
- data/dockerfiles/Dockerfile-ruby2.3 +1 -1
- data/dockerfiles/Dockerfile-ruby2.4 +1 -1
- data/fluent-plugin-geoip.gemspec +3 -4
- data/lib/fluent/plugin/filter_geoip.rb +16 -22
- data/lib/fluent/plugin/geoip.rb +2 -21
- data/lib/fluent/plugin/out_geoip.rb +23 -26
- data/test/helper.rb +4 -28
- data/test/plugin/test_filter_geoip.rb +46 -175
- data/test/plugin/test_out_geoip.rb +535 -550
- metadata +13 -23
- data/gemfiles/fluentd_v0.12_with_backport_dig.gemfile +0 -8
- data/gemfiles/fluentd_v0.12_without_backport_dig.gemfile +0 -7
data/test/helper.rb
CHANGED
@@ -1,31 +1,7 @@
|
|
1
|
-
require '
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
1
|
+
require 'bundler/setup'
|
10
2
|
require 'test/unit'
|
11
3
|
|
12
|
-
$LOAD_PATH.unshift(File.join(
|
13
|
-
$LOAD_PATH.unshift(
|
4
|
+
$LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
|
5
|
+
$LOAD_PATH.unshift(__dir__)
|
14
6
|
require 'fluent/test'
|
15
|
-
|
16
|
-
nulllogger = Object.new
|
17
|
-
nulllogger.instance_eval {|obj|
|
18
|
-
def method_missing(method, *args)
|
19
|
-
# pass
|
20
|
-
end
|
21
|
-
}
|
22
|
-
$log = nulllogger
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'fluent/plugin/out_geoip'
|
26
|
-
if Fluent.const_defined?(:Filter)
|
27
|
-
require 'fluent/plugin/filter_geoip'
|
28
|
-
end
|
29
|
-
|
30
|
-
class Test::Unit::TestCase
|
31
|
-
end
|
7
|
+
require 'fluent/test/helpers'
|
@@ -1,35 +1,30 @@
|
|
1
1
|
require 'helper'
|
2
|
+
require 'fluent/plugin/filter_geoip'
|
3
|
+
require 'fluent/test/driver/filter'
|
2
4
|
|
3
5
|
class GeoipFilterTest < Test::Unit::TestCase
|
4
6
|
def setup
|
5
|
-
omit_unless(Fluent.const_defined?(:Filter))
|
6
7
|
Fluent::Test.setup
|
7
8
|
@time = Fluent::Engine.now
|
8
9
|
end
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
CONFIG = %[
|
12
|
+
geoip_lookup_key host
|
13
|
+
enable_key_city geoip_city
|
14
|
+
]
|
15
|
+
|
16
|
+
def create_driver(conf = CONFIG, syntax: :v1)
|
17
|
+
Fluent::Test::Driver::Filter.new(Fluent::Plugin::GeoipFilter).configure(conf, syntax: syntax)
|
12
18
|
end
|
13
19
|
|
14
|
-
def filter(config, messages,
|
15
|
-
d = create_driver(config,
|
16
|
-
|
17
|
-
d.run {
|
20
|
+
def filter(config, messages, syntax: :v1)
|
21
|
+
d = create_driver(config, syntax: syntax)
|
22
|
+
d.run(default_tag: "input.access") {
|
18
23
|
messages.each {|message|
|
19
|
-
d.
|
24
|
+
d.feed(@time, message)
|
20
25
|
}
|
21
26
|
}
|
22
|
-
|
23
|
-
filtered.map {|m| m[2] }
|
24
|
-
end
|
25
|
-
|
26
|
-
def setup_geoip_mock(d)
|
27
|
-
geoip = d.instance.instance_variable_get(:@geoip)
|
28
|
-
db = Object.new
|
29
|
-
def db.lookup(ip)
|
30
|
-
{}
|
31
|
-
end
|
32
|
-
geoip.instance_variable_set(:@geoip, db)
|
27
|
+
d.filtered_records
|
33
28
|
end
|
34
29
|
|
35
30
|
sub_test_case "configure" do
|
@@ -71,7 +66,8 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
71
66
|
end
|
72
67
|
|
73
68
|
test "invalid json structure w/ Ruby hash like" do
|
74
|
-
|
69
|
+
|
70
|
+
assert_raise(Fluent::ConfigParseError) {
|
75
71
|
create_driver %[
|
76
72
|
geoip_lookup_key host
|
77
73
|
<record>
|
@@ -82,7 +78,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
82
78
|
end
|
83
79
|
|
84
80
|
test "invalid json structure w/ unquoted string literal" do
|
85
|
-
assert_raise(Fluent::
|
81
|
+
assert_raise(Fluent::ConfigParseError) {
|
86
82
|
create_driver %[
|
87
83
|
geoip_lookup_key host
|
88
84
|
<record>
|
@@ -130,27 +126,6 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
130
126
|
end
|
131
127
|
|
132
128
|
sub_test_case "geoip2_c" do
|
133
|
-
def test_filter_with_include_tag_key
|
134
|
-
config = %[
|
135
|
-
backend_library geoip2_c
|
136
|
-
geoip_lookup_key ip.origin, ip.dest
|
137
|
-
<record>
|
138
|
-
origin_country ${country.iso_code['ip.origin']}
|
139
|
-
dest_country ${country.iso_code['ip.dest']}
|
140
|
-
</record>
|
141
|
-
include_tag_key true
|
142
|
-
]
|
143
|
-
messages = [
|
144
|
-
{'ip.origin' => '66.102.3.80', 'ip.dest' => '8.8.8.8'}
|
145
|
-
]
|
146
|
-
expected = [
|
147
|
-
{'ip.origin' => '66.102.3.80', 'ip.dest' => '8.8.8.8',
|
148
|
-
'origin_country' => 'US', 'dest_country' => 'US', 'tag' => 'test' }
|
149
|
-
]
|
150
|
-
filtered = filter(config, messages)
|
151
|
-
assert_equal(expected, filtered)
|
152
|
-
end
|
153
|
-
|
154
129
|
def test_filter_with_dot_key
|
155
130
|
config = %[
|
156
131
|
backend_library geoip2_c
|
@@ -190,7 +165,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
190
165
|
{'host' => '203.0.113.1', 'message' => 'invalid ip', 'geoip_city' => nil, 'geopoint' => [nil, nil]},
|
191
166
|
{'host' => '0', 'message' => 'invalid ip', 'geoip_city' => nil, 'geopoint' => [nil, nil]}
|
192
167
|
]
|
193
|
-
filtered = filter(config, messages)
|
168
|
+
filtered = filter(config, messages, syntax: :v0)
|
194
169
|
assert_equal(expected, filtered)
|
195
170
|
end
|
196
171
|
|
@@ -216,7 +191,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
216
191
|
{'host' => '66.102.3.80', 'message' => 'google bot',
|
217
192
|
'geoip_city' => 'Mountain View', 'geopoint' => [-122.0574, 37.419200000000004]}
|
218
193
|
]
|
219
|
-
filtered = filter(config, messages)
|
194
|
+
filtered = filter(config, messages, syntax: :v0)
|
220
195
|
assert_equal(expected, filtered)
|
221
196
|
end
|
222
197
|
|
@@ -281,7 +256,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
281
256
|
'broken_array2' => [nil, nil]
|
282
257
|
},
|
283
258
|
]
|
284
|
-
filtered = filter(config, messages)
|
259
|
+
filtered = filter(config, messages, syntax: :v0)
|
285
260
|
# test-unit cannot calculate diff between large Array
|
286
261
|
assert_equal(expected[0], filtered[0])
|
287
262
|
assert_equal(expected[1], filtered[1])
|
@@ -322,7 +297,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
322
297
|
'string_array' => [nil, nil]
|
323
298
|
}
|
324
299
|
]
|
325
|
-
filtered = filter(config, messages)
|
300
|
+
filtered = filter(config, messages, syntax: :v0)
|
326
301
|
assert_equal(expected, filtered)
|
327
302
|
end
|
328
303
|
|
@@ -383,7 +358,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
383
358
|
'peculiar_pattern' => '[GEOIP] message => {"lat":37.419200000000004, "lon":-122.0574}'
|
384
359
|
}
|
385
360
|
]
|
386
|
-
filtered = filter(config_quoted_record, messages
|
361
|
+
filtered = filter(config_quoted_record, messages)
|
387
362
|
assert_equal(expected, filtered)
|
388
363
|
end
|
389
364
|
|
@@ -414,33 +389,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
414
389
|
}
|
415
390
|
}
|
416
391
|
]
|
417
|
-
filtered = filter(config, messages
|
418
|
-
assert_equal(expected, filtered)
|
419
|
-
end
|
420
|
-
|
421
|
-
def test_filter_when_latitude_longitude_is_nil
|
422
|
-
config = %[
|
423
|
-
backend_library geoip2_c
|
424
|
-
geoip_lookup_key host
|
425
|
-
<record>
|
426
|
-
latitude ${location.latitude['host']}
|
427
|
-
longitude ${location.longitude['host']}
|
428
|
-
</record>
|
429
|
-
]
|
430
|
-
messages = [
|
431
|
-
{ "host" => "180.94.85.84", "message" => "nil latitude and longitude" }
|
432
|
-
]
|
433
|
-
expected = [
|
434
|
-
{
|
435
|
-
"host" => "180.94.85.84",
|
436
|
-
"message" => "nil latitude and longitude",
|
437
|
-
"latitude" => 0.0,
|
438
|
-
"longitude" => 0.0
|
439
|
-
}
|
440
|
-
]
|
441
|
-
filtered = filter(config, messages) do |d|
|
442
|
-
setup_geoip_mock(d)
|
443
|
-
end
|
392
|
+
filtered = filter(config, messages)
|
444
393
|
assert_equal(expected, filtered)
|
445
394
|
end
|
446
395
|
end
|
@@ -485,7 +434,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
485
434
|
{'host' => '203.0.113.1', 'message' => 'invalid ip', 'geoip_city' => nil, 'geopoint' => [nil, nil]},
|
486
435
|
{'host' => '0', 'message' => 'invalid ip', 'geoip_city' => nil, 'geopoint' => [nil, nil]}
|
487
436
|
]
|
488
|
-
filtered = filter(config, messages)
|
437
|
+
filtered = filter(config, messages, syntax: :v0)
|
489
438
|
assert_equal(expected, filtered)
|
490
439
|
end
|
491
440
|
|
@@ -511,7 +460,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
511
460
|
{'host' => '66.102.3.80', 'message' => 'google bot',
|
512
461
|
'geoip_city' => 'Mountain View', 'geopoint' => [-122.0574, 37.419200000000004]}
|
513
462
|
]
|
514
|
-
filtered = filter(config, messages)
|
463
|
+
filtered = filter(config, messages, syntax: :v0)
|
515
464
|
assert_equal(expected, filtered)
|
516
465
|
end
|
517
466
|
|
@@ -576,7 +525,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
576
525
|
'broken_array2' => [nil, nil]
|
577
526
|
},
|
578
527
|
]
|
579
|
-
filtered = filter(config, messages)
|
528
|
+
filtered = filter(config, messages, syntax: :v0)
|
580
529
|
# test-unit cannot calculate diff between large Array
|
581
530
|
assert_equal(expected[0], filtered[0])
|
582
531
|
assert_equal(expected[1], filtered[1])
|
@@ -617,7 +566,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
617
566
|
'string_array' => [nil, nil]
|
618
567
|
}
|
619
568
|
]
|
620
|
-
filtered = filter(config, messages)
|
569
|
+
filtered = filter(config, messages, syntax: :v0)
|
621
570
|
assert_equal(expected, filtered)
|
622
571
|
end
|
623
572
|
|
@@ -678,7 +627,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
678
627
|
'peculiar_pattern' => '[GEOIP] message => {"lat":37.419200000000004, "lon":-122.0574}'
|
679
628
|
}
|
680
629
|
]
|
681
|
-
filtered = filter(config_quoted_record, messages
|
630
|
+
filtered = filter(config_quoted_record, messages)
|
682
631
|
assert_equal(expected, filtered)
|
683
632
|
end
|
684
633
|
|
@@ -709,51 +658,6 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
709
658
|
}
|
710
659
|
}
|
711
660
|
]
|
712
|
-
filtered = filter(config, messages, true)
|
713
|
-
assert_equal(expected, filtered)
|
714
|
-
end
|
715
|
-
|
716
|
-
def test_filter_when_latitude_longitude_is_nil
|
717
|
-
config = %[
|
718
|
-
backend_library geoip2_compat
|
719
|
-
geoip_lookup_key host
|
720
|
-
<record>
|
721
|
-
latitude ${latitude['host']}
|
722
|
-
longitude ${longitude['host']}
|
723
|
-
</record>
|
724
|
-
]
|
725
|
-
messages = [
|
726
|
-
{ "host" => "180.94.85.84", "message" => "nil latitude and longitude" }
|
727
|
-
]
|
728
|
-
expected = [
|
729
|
-
{
|
730
|
-
"host" => "180.94.85.84",
|
731
|
-
"message" => "nil latitude and longitude",
|
732
|
-
"latitude" => 0.0,
|
733
|
-
"longitude" => 0.0
|
734
|
-
}
|
735
|
-
]
|
736
|
-
filtered = filter(config, messages) do |d|
|
737
|
-
setup_geoip_mock(d)
|
738
|
-
end
|
739
|
-
assert_equal(expected, filtered)
|
740
|
-
end
|
741
|
-
|
742
|
-
def test_filter_with_include_tag_key
|
743
|
-
config = %[
|
744
|
-
backend_library geoip2_compat
|
745
|
-
geoip_lookup_key host
|
746
|
-
enable_key_city geoip_city
|
747
|
-
include_tag_key true
|
748
|
-
]
|
749
|
-
messages = [
|
750
|
-
{'host' => '66.102.3.80', 'message' => 'valid ip'},
|
751
|
-
{'message' => 'missing field'},
|
752
|
-
]
|
753
|
-
expected = [
|
754
|
-
{'host' => '66.102.3.80', 'message' => 'valid ip', 'geoip_city' => 'Mountain View', 'tag' => 'test'},
|
755
|
-
{'message' => 'missing field', 'geoip_city' => nil, 'tag' => 'test'},
|
756
|
-
]
|
757
661
|
filtered = filter(config, messages)
|
758
662
|
assert_equal(expected, filtered)
|
759
663
|
end
|
@@ -762,6 +666,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
762
666
|
sub_test_case "geoip legacy" do
|
763
667
|
def test_filter
|
764
668
|
config = %[
|
669
|
+
backend_library geoip
|
765
670
|
geoip_lookup_key host
|
766
671
|
enable_key_city geoip_city
|
767
672
|
]
|
@@ -779,6 +684,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
779
684
|
|
780
685
|
def test_filter_with_dot_key
|
781
686
|
config = %[
|
687
|
+
backend_library geoip
|
782
688
|
geoip_lookup_key ip.origin, ip.dest
|
783
689
|
<record>
|
784
690
|
origin_country ${country_code['ip.origin']}
|
@@ -798,6 +704,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
798
704
|
|
799
705
|
def test_filter_nested_attr
|
800
706
|
config = %[
|
707
|
+
backend_library geoip
|
801
708
|
geoip_lookup_key host.ip
|
802
709
|
enable_key_city geoip_city
|
803
710
|
]
|
@@ -815,6 +722,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
815
722
|
|
816
723
|
def test_filter_with_unknown_address
|
817
724
|
config = %[
|
725
|
+
backend_library geoip
|
818
726
|
geoip_lookup_key host
|
819
727
|
<record>
|
820
728
|
geoip_city ${city['host']}
|
@@ -831,12 +739,13 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
831
739
|
{'host' => '203.0.113.1', 'message' => 'invalid ip', 'geoip_city' => nil, 'geopoint' => [nil, nil]},
|
832
740
|
{'host' => '0', 'message' => 'invalid ip', 'geoip_city' => nil, 'geopoint' => [nil, nil]}
|
833
741
|
]
|
834
|
-
filtered = filter(config, messages)
|
742
|
+
filtered = filter(config, messages, syntax: :v0)
|
835
743
|
assert_equal(expected, filtered)
|
836
744
|
end
|
837
745
|
|
838
746
|
def test_filter_with_skip_unknown_address
|
839
747
|
config = %[
|
748
|
+
backend_library geoip
|
840
749
|
geoip_lookup_key host
|
841
750
|
<record>
|
842
751
|
geoip_city ${city['host']}
|
@@ -856,12 +765,13 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
856
765
|
{'host' => '66.102.3.80', 'message' => 'google bot',
|
857
766
|
'geoip_city' => 'Mountain View', 'geopoint' => [-122.05740356445312, 37.4192008972168]}
|
858
767
|
]
|
859
|
-
filtered = filter(config, messages)
|
768
|
+
filtered = filter(config, messages, syntax: :v0)
|
860
769
|
assert_equal(expected, filtered)
|
861
770
|
end
|
862
771
|
|
863
772
|
def test_filter_multiple_key
|
864
773
|
config = %[
|
774
|
+
backend_library geoip
|
865
775
|
geoip_lookup_key from.ip, to.ip
|
866
776
|
enable_key_city from_city, to_city
|
867
777
|
]
|
@@ -874,12 +784,13 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
874
784
|
'from_city' => 'Mountain View', 'to_city' => 'Tokorozawa'},
|
875
785
|
{'message' => 'missing field', 'from_city' => nil, 'to_city' => nil}
|
876
786
|
]
|
877
|
-
filtered = filter(config, messages)
|
787
|
+
filtered = filter(config, messages, syntax: :v0)
|
878
788
|
assert_equal(expected, filtered)
|
879
789
|
end
|
880
790
|
|
881
791
|
def test_filter_multiple_key_multiple_record
|
882
792
|
config = %[
|
793
|
+
backend_library geoip
|
883
794
|
geoip_lookup_key from.ip, to.ip
|
884
795
|
enable_key_city from_city, to_city
|
885
796
|
enable_key_country_name from_country, to_country
|
@@ -913,12 +824,13 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
913
824
|
'to_country' => nil
|
914
825
|
}
|
915
826
|
]
|
916
|
-
filtered = filter(config, messages)
|
827
|
+
filtered = filter(config, messages, syntax: :v0)
|
917
828
|
assert_equal(expected, filtered)
|
918
829
|
end
|
919
830
|
|
920
831
|
def test_filter_record_directive
|
921
832
|
config = %[
|
833
|
+
backend_library geoip
|
922
834
|
geoip_lookup_key from.ip
|
923
835
|
<record>
|
924
836
|
from_city ${city['from.ip']}
|
@@ -977,7 +889,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
977
889
|
'broken_array2' => [nil, nil]
|
978
890
|
},
|
979
891
|
]
|
980
|
-
filtered = filter(config, messages)
|
892
|
+
filtered = filter(config, messages, syntax: :v0)
|
981
893
|
# test-unit cannot calculate diff between large Array
|
982
894
|
assert_equal(expected[0], filtered[0])
|
983
895
|
assert_equal(expected[1], filtered[1])
|
@@ -985,6 +897,7 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
985
897
|
|
986
898
|
def test_filter_record_directive_multiple_record
|
987
899
|
config = %[
|
900
|
+
backend_library geoip
|
988
901
|
geoip_lookup_key from.ip, to.ip
|
989
902
|
<record>
|
990
903
|
from_city ${city['from.ip']}
|
@@ -1017,12 +930,13 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
1017
930
|
'string_array' => [nil, nil]
|
1018
931
|
}
|
1019
932
|
]
|
1020
|
-
filtered = filter(config, messages)
|
933
|
+
filtered = filter(config, messages, syntax: :v0)
|
1021
934
|
assert_equal(expected, filtered)
|
1022
935
|
end
|
1023
936
|
|
1024
937
|
def config_quoted_record
|
1025
938
|
%[
|
939
|
+
backend_library geoip
|
1026
940
|
geoip_lookup_key host
|
1027
941
|
<record>
|
1028
942
|
location_properties '{ "country_code" : "${country_code["host"]}", "lat": ${latitude["host"]}, "lon": ${longitude["host"]} }'
|
@@ -1077,12 +991,13 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
1077
991
|
'peculiar_pattern' => '[GEOIP] message => {"lat":37.4192008972168, "lon":-122.05740356445312}'
|
1078
992
|
}
|
1079
993
|
]
|
1080
|
-
filtered = filter(config_quoted_record, messages
|
994
|
+
filtered = filter(config_quoted_record, messages)
|
1081
995
|
assert_equal(expected, filtered)
|
1082
996
|
end
|
1083
997
|
|
1084
998
|
def test_filter_multiline_v1_config
|
1085
999
|
config = %[
|
1000
|
+
backend_library geoip
|
1086
1001
|
geoip_lookup_key host
|
1087
1002
|
<record>
|
1088
1003
|
location_properties {
|
@@ -1107,50 +1022,6 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
1107
1022
|
}
|
1108
1023
|
}
|
1109
1024
|
]
|
1110
|
-
filtered = filter(config, messages, true)
|
1111
|
-
assert_equal(expected, filtered)
|
1112
|
-
end
|
1113
|
-
|
1114
|
-
def test_filter_when_latitude_longitude_is_nil
|
1115
|
-
config = %[
|
1116
|
-
backend_library geoip
|
1117
|
-
geoip_lookup_key host
|
1118
|
-
<record>
|
1119
|
-
latitude ${latitude['host']}
|
1120
|
-
longitude ${longitude['host']}
|
1121
|
-
</record>
|
1122
|
-
]
|
1123
|
-
messages = [
|
1124
|
-
{ "host" => "180.94.85.84", "message" => "nil latitude and longitude" }
|
1125
|
-
]
|
1126
|
-
expected = [
|
1127
|
-
{
|
1128
|
-
"host" => "180.94.85.84",
|
1129
|
-
"message" => "nil latitude and longitude",
|
1130
|
-
"latitude" => 0.0,
|
1131
|
-
"longitude" => 0.0
|
1132
|
-
}
|
1133
|
-
]
|
1134
|
-
filtered = filter(config, messages) do |d|
|
1135
|
-
setup_geoip_mock(d)
|
1136
|
-
end
|
1137
|
-
assert_equal(expected, filtered)
|
1138
|
-
end
|
1139
|
-
|
1140
|
-
def test_filter_with_include_tag_key
|
1141
|
-
config = %[
|
1142
|
-
geoip_lookup_key host
|
1143
|
-
enable_key_city geoip_city
|
1144
|
-
include_tag_key true
|
1145
|
-
]
|
1146
|
-
messages = [
|
1147
|
-
{'host' => '66.102.3.80', 'message' => 'valid ip'},
|
1148
|
-
{'message' => 'missing field'},
|
1149
|
-
]
|
1150
|
-
expected = [
|
1151
|
-
{'host' => '66.102.3.80', 'message' => 'valid ip', 'geoip_city' => 'Mountain View', 'tag' => 'test'},
|
1152
|
-
{'message' => 'missing field', 'geoip_city' => nil, 'tag' => 'test'},
|
1153
|
-
]
|
1154
1025
|
filtered = filter(config, messages)
|
1155
1026
|
assert_equal(expected, filtered)
|
1156
1027
|
end
|