logstash-filter-mutate 3.5.7 → 3.5.8
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/CHANGELOG.md +3 -0
- data/lib/logstash/filters/mutate.rb +2 -1
- data/logstash-filter-mutate.gemspec +1 -1
- data/spec/filters/integration/multi_stage_spec.rb +1 -1
- data/spec/filters/mutate_spec.rb +48 -28
- 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: a35944145cf520f4dc7a0249e8d4c75e60abcf0c454545f0fb9a4a70af223bea
|
4
|
+
data.tar.gz: 431b8427123636a98fa9c51a4460157d6018cd594c927e95e9028048f49c2e3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c7c36f559f8733d38ba8d87f2017418b380c1178100fb4a7641cb5c80e5440b06e5e6aaed46b3f9c53be3a5aeaa245bb3f2fd90a90a41ddd105c3ff00046ffb
|
7
|
+
data.tar.gz: b8b4c405276c6714db052d3cd1a46a5286c4ef787dd9aad33b7861468e6d83410f13eea597dc41aee0a03d6e110a40ace196bb687efba0caa417114bfdeb6bb3
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 3.5.8
|
2
|
+
- Fix "Can't modify frozen string" error when converting boolean to `string` [#171](https://github.com/logstash-plugins/logstash-filter-mutate/pull/171)
|
3
|
+
|
1
4
|
## 3.5.7
|
2
5
|
- Clarify that `split` and `join` also support strings [#164](https://github.com/logstash-plugins/logstash-filter-mutate/pull/164)
|
3
6
|
|
@@ -330,7 +330,8 @@ class LogStash::Filters::Mutate < LogStash::Filters::Base
|
|
330
330
|
# target encoding and only change if necessary, so calling
|
331
331
|
# valid_encoding? is redundant
|
332
332
|
# see https://twitter.com/jordansissel/status/444613207143903232
|
333
|
-
|
333
|
+
# use + since .to_s on nil/boolean returns a frozen string since ruby 2.7
|
334
|
+
(+value.to_s).force_encoding(Encoding::UTF_8)
|
334
335
|
end
|
335
336
|
|
336
337
|
def convert_boolean(value)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-filter-mutate'
|
4
|
-
s.version = '3.5.
|
4
|
+
s.version = '3.5.8'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Performs mutations on fields"
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
@@ -34,7 +34,7 @@ describe 'LogStash::Filters::Mutate' do
|
|
34
34
|
CONFIG
|
35
35
|
end
|
36
36
|
|
37
|
-
sample("message" => "hello WORLD", "lower1" => "PPQQRRSS", "lower2" => "pppqqq") do
|
37
|
+
sample({"message" => "hello WORLD", "lower1" => "PPQQRRSS", "lower2" => "pppqqq"}) do
|
38
38
|
result = results.first
|
39
39
|
expect(result.get("bar")).to eq('world')
|
40
40
|
expect(result.get("lower1")).to eq("ppqqrrss")
|
data/spec/filters/mutate_spec.rb
CHANGED
@@ -428,7 +428,7 @@ describe LogStash::Filters::Mutate do
|
|
428
428
|
}
|
429
429
|
}'
|
430
430
|
|
431
|
-
sample("unicorns" => 1234) do
|
431
|
+
sample({"unicorns" => 1234}) do
|
432
432
|
expect(subject.get("unicorns")).to eq "1234"
|
433
433
|
end
|
434
434
|
end
|
@@ -561,25 +561,25 @@ describe LogStash::Filters::Mutate do
|
|
561
561
|
end
|
562
562
|
|
563
563
|
context 'when field is the true value' do
|
564
|
-
sample('field' => true) do
|
564
|
+
sample({'field' => true}) do
|
565
565
|
expect(subject.get('field')).to eq(1.0)
|
566
566
|
end
|
567
567
|
end
|
568
568
|
|
569
569
|
context 'when field is the false value' do
|
570
|
-
sample('field' => false) do
|
570
|
+
sample({'field' => false}) do
|
571
571
|
expect(subject.get('field')).to eq(0.0)
|
572
572
|
end
|
573
573
|
end
|
574
574
|
|
575
575
|
context 'when field is nil' do
|
576
|
-
sample('field' => nil) do
|
576
|
+
sample({'field' => nil}) do
|
577
577
|
expect(subject.get('field')).to be_nil
|
578
578
|
end
|
579
579
|
end
|
580
580
|
|
581
581
|
context 'when field is not set' do
|
582
|
-
sample('field' => nil) do
|
582
|
+
sample({'field' => nil}) do
|
583
583
|
expect(subject.get('field')).to be_nil
|
584
584
|
end
|
585
585
|
end
|
@@ -634,25 +634,25 @@ describe LogStash::Filters::Mutate do
|
|
634
634
|
end
|
635
635
|
|
636
636
|
context 'when field is the true value' do
|
637
|
-
sample('field' => true) do
|
637
|
+
sample({'field' => true}) do
|
638
638
|
expect(subject.get('field')).to eq(1.0)
|
639
639
|
end
|
640
640
|
end
|
641
641
|
|
642
642
|
context 'when field is the false value' do
|
643
|
-
sample('field' => false) do
|
643
|
+
sample({'field' => false}) do
|
644
644
|
expect(subject.get('field')).to eq(0.0)
|
645
645
|
end
|
646
646
|
end
|
647
647
|
|
648
648
|
context 'when field is nil' do
|
649
|
-
sample('field' => nil) do
|
649
|
+
sample({'field' => nil}) do
|
650
650
|
expect(subject.get('field')).to be_nil
|
651
651
|
end
|
652
652
|
end
|
653
653
|
|
654
654
|
context 'when field is not set' do
|
655
|
-
sample('field' => nil) do
|
655
|
+
sample({'field' => nil}) do
|
656
656
|
expect(subject.get('field')).to be_nil
|
657
657
|
end
|
658
658
|
end
|
@@ -666,7 +666,7 @@ describe LogStash::Filters::Mutate do
|
|
666
666
|
}
|
667
667
|
}'
|
668
668
|
|
669
|
-
sample("unicorns" => "Magnificient, but extinct, animals") do
|
669
|
+
sample({"unicorns" => "Magnificient, but extinct, animals"}) do
|
670
670
|
expect(subject.get("unicorns")).to eq "Magnificient, and common, animals"
|
671
671
|
end
|
672
672
|
end
|
@@ -679,8 +679,8 @@ describe LogStash::Filters::Mutate do
|
|
679
679
|
}
|
680
680
|
}'
|
681
681
|
|
682
|
-
sample("unicorns" => [
|
683
|
-
"Magnificient extinct animals", "Other extinct ideas" ]
|
682
|
+
sample({"unicorns" => [
|
683
|
+
"Magnificient extinct animals", "Other extinct ideas" ]}
|
684
684
|
) do
|
685
685
|
expect(subject.get("unicorns")).to eq [
|
686
686
|
"Magnificient common animals",
|
@@ -698,7 +698,7 @@ describe LogStash::Filters::Mutate do
|
|
698
698
|
}
|
699
699
|
}'
|
700
700
|
|
701
|
-
sample("colors" => "One red car", "shapes" => "Four red squares") do
|
701
|
+
sample({"colors" => "One red car", "shapes" => "Four red squares"}) do
|
702
702
|
expect(subject.get("colors")).to eq "One blue car"
|
703
703
|
expect(subject.get("shapes")).to eq "Four red circles"
|
704
704
|
end
|
@@ -712,7 +712,7 @@ describe LogStash::Filters::Mutate do
|
|
712
712
|
}
|
713
713
|
}'
|
714
714
|
|
715
|
-
sample("colors" => "red3") do
|
715
|
+
sample({"colors" => "red3"}) do
|
716
716
|
expect(subject.get("colors")).to eq "redblue"
|
717
717
|
end
|
718
718
|
end
|
@@ -758,7 +758,7 @@ describe LogStash::Filters::Mutate do
|
|
758
758
|
}
|
759
759
|
CONFIG
|
760
760
|
|
761
|
-
sample("field_one" => "value", "x" => "one") do
|
761
|
+
sample({"field_one" => "value", "x" => "one"}) do
|
762
762
|
expect(subject).to_not include("field_one")
|
763
763
|
expect(subject).to include("destination")
|
764
764
|
end
|
@@ -773,7 +773,7 @@ describe LogStash::Filters::Mutate do
|
|
773
773
|
}
|
774
774
|
CONFIG
|
775
775
|
|
776
|
-
sample("field_one" => "value", "x" => "one") do
|
776
|
+
sample({"field_one" => "value", "x" => "one"}) do
|
777
777
|
expect(subject).to_not include("origin")
|
778
778
|
expect(subject).to include("field_one")
|
779
779
|
end
|
@@ -934,6 +934,26 @@ describe LogStash::Filters::Mutate do
|
|
934
934
|
end
|
935
935
|
end
|
936
936
|
|
937
|
+
describe "convert auto-frozen values to string" do
|
938
|
+
config <<-CONFIG
|
939
|
+
filter {
|
940
|
+
mutate {
|
941
|
+
convert => {
|
942
|
+
"true_field" => "string"
|
943
|
+
"false_field" => "string"
|
944
|
+
}
|
945
|
+
}
|
946
|
+
}
|
947
|
+
CONFIG
|
948
|
+
|
949
|
+
sample({ "true_field" => true, "false_field" => false }) do
|
950
|
+
expect(subject.get("true_field")).to eq "true"
|
951
|
+
expect(subject.get("true_field")).to be_a(String)
|
952
|
+
expect(subject.get("false_field")).to eq "false"
|
953
|
+
expect(subject.get("false_field")).to be_a(String)
|
954
|
+
end
|
955
|
+
end
|
956
|
+
|
937
957
|
#LOGSTASH-1529
|
938
958
|
describe "gsub on a String with dynamic fields (%{}) in pattern" do
|
939
959
|
config '
|
@@ -943,7 +963,7 @@ describe LogStash::Filters::Mutate do
|
|
943
963
|
}
|
944
964
|
}'
|
945
965
|
|
946
|
-
sample("unicorns" => "Unicorns of type blue are common", "unicorn_type" => "blue") do
|
966
|
+
sample({"unicorns" => "Unicorns of type blue are common", "unicorn_type" => "blue"}) do
|
947
967
|
expect(subject.get("unicorns")).to eq "Unicorns green are common"
|
948
968
|
end
|
949
969
|
end
|
@@ -957,7 +977,7 @@ describe LogStash::Filters::Mutate do
|
|
957
977
|
}
|
958
978
|
}'
|
959
979
|
|
960
|
-
sample("unicorns2" => "Unicorns of type blue are common", "unicorn_color" => "blue") do
|
980
|
+
sample({"unicorns2" => "Unicorns of type blue are common", "unicorn_color" => "blue"}) do
|
961
981
|
expect(subject.get("unicorns2")).to eq "Unicorns blue and green are common"
|
962
982
|
end
|
963
983
|
end
|
@@ -971,9 +991,9 @@ describe LogStash::Filters::Mutate do
|
|
971
991
|
}
|
972
992
|
}'
|
973
993
|
|
974
|
-
sample("unicorns_array" => [
|
994
|
+
sample({"unicorns_array" => [
|
975
995
|
"Unicorns of type blue are found in Alaska", "Unicorns of type blue are extinct" ],
|
976
|
-
"color" => "blue"
|
996
|
+
"color" => "blue" }
|
977
997
|
) do
|
978
998
|
expect(subject.get("unicorns_array")).to eq [
|
979
999
|
"Unicorns blue and green are found in Alaska",
|
@@ -990,7 +1010,7 @@ describe LogStash::Filters::Mutate do
|
|
990
1010
|
}
|
991
1011
|
}'
|
992
1012
|
|
993
|
-
sample("foo" => "bar") do
|
1013
|
+
sample({"foo" => "bar"}) do
|
994
1014
|
expect(subject.get("list")).to eq ["bar"]
|
995
1015
|
expect(subject.get("foo")).to eq "bar"
|
996
1016
|
end
|
@@ -1004,7 +1024,7 @@ describe LogStash::Filters::Mutate do
|
|
1004
1024
|
}
|
1005
1025
|
}'
|
1006
1026
|
|
1007
|
-
sample("foo" => "bar", "list" => []) do
|
1027
|
+
sample({"foo" => "bar", "list" => []}) do
|
1008
1028
|
expect(subject.get("list")).to eq ["bar"]
|
1009
1029
|
expect(subject.get("foo")).to eq "bar"
|
1010
1030
|
end
|
@@ -1018,7 +1038,7 @@ describe LogStash::Filters::Mutate do
|
|
1018
1038
|
}
|
1019
1039
|
}'
|
1020
1040
|
|
1021
|
-
sample("foo" => "bar", "list" => ["baz"]) do
|
1041
|
+
sample({"foo" => "bar", "list" => ["baz"]}) do
|
1022
1042
|
expect(subject.get("list")).to eq ["baz", "bar"]
|
1023
1043
|
expect(subject.get("foo")).to eq "bar"
|
1024
1044
|
end
|
@@ -1032,7 +1052,7 @@ describe LogStash::Filters::Mutate do
|
|
1032
1052
|
}
|
1033
1053
|
}'
|
1034
1054
|
|
1035
|
-
sample("foo" => ["bar"], "list" => ["baz"]) do
|
1055
|
+
sample({"foo" => ["bar"], "list" => ["baz"]}) do
|
1036
1056
|
expect(subject.get("list")).to eq ["baz", "bar"]
|
1037
1057
|
expect(subject.get("foo")).to eq ["bar"]
|
1038
1058
|
end
|
@@ -1046,7 +1066,7 @@ describe LogStash::Filters::Mutate do
|
|
1046
1066
|
}
|
1047
1067
|
}'
|
1048
1068
|
|
1049
|
-
sample("foo" => [], "list" => ["baz"]) do
|
1069
|
+
sample({"foo" => [], "list" => ["baz"]}) do
|
1050
1070
|
expect(subject.get("list")).to eq ["baz"]
|
1051
1071
|
expect(subject.get("foo")).to eq []
|
1052
1072
|
end
|
@@ -1060,7 +1080,7 @@ describe LogStash::Filters::Mutate do
|
|
1060
1080
|
}
|
1061
1081
|
}'
|
1062
1082
|
|
1063
|
-
sample("foo" => ["bar"], "list" => "baz") do
|
1083
|
+
sample({"foo" => ["bar"], "list" => "baz"}) do
|
1064
1084
|
expect(subject.get("list")).to eq ["baz", "bar"]
|
1065
1085
|
expect(subject.get("foo")).to eq ["bar"]
|
1066
1086
|
end
|
@@ -1074,7 +1094,7 @@ describe LogStash::Filters::Mutate do
|
|
1074
1094
|
}
|
1075
1095
|
}'
|
1076
1096
|
|
1077
|
-
sample("foo" => "bar", "list" => "baz") do
|
1097
|
+
sample({"foo" => "bar", "list" => "baz"}) do
|
1078
1098
|
expect(subject.get("list")).to eq ["baz", "bar"]
|
1079
1099
|
expect(subject.get("foo")).to eq "bar"
|
1080
1100
|
end
|
@@ -1094,7 +1114,7 @@ describe LogStash::Filters::Mutate do
|
|
1094
1114
|
}'
|
1095
1115
|
|
1096
1116
|
|
1097
|
-
sample("field1" => nil, "field2" => nil, "field3" => nil, "field4" => true) do
|
1117
|
+
sample({"field1" => nil, "field2" => nil, "field3" => nil, "field4" => true}) do
|
1098
1118
|
expect(subject.get("field1")).to eq("Hello")
|
1099
1119
|
expect(subject.get("field2")).to eq("Bye")
|
1100
1120
|
expect(subject.get("field3")).to eq("5")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-mutate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|