logstash-filter-kv 2.0.3 → 2.0.4

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
  SHA1:
3
- metadata.gz: 7823f827ecc2a7359e187f76eeef30ace026483d
4
- data.tar.gz: 15efba89f825cfe3431ad6fc66f1fa8eb06ff1d9
3
+ metadata.gz: 173341a071a48586f6990109102f5d6ee2ad0763
4
+ data.tar.gz: f46c88d52048613c298361ceb5e67c7a31e000a7
5
5
  SHA512:
6
- metadata.gz: b5c3322e32a0c28e133ec2a7b7a347019e208c70d7ec84afca3ec086c1d0389f3b20effce8392a8646b333e378dfa4a917d00f7b92731da3c2953ce6291d8604
7
- data.tar.gz: f0fd946fba942d8e8c5d0c678e85619b522b32e12ba6b2bce49e2bf6166cc6744b5ed9838e94ebc267565b1336304778b8551d431e01978d3b11336b041d63a4
6
+ metadata.gz: 797bc5b31e5cff7de16d7734d1d50cd3017d7631132f2487604851573925ee72af79225face47c07202c7589a00b15dd729a360cbdc99fd68907b9ac1ed49ac1
7
+ data.tar.gz: 64198181139ce12f0d2876170172f07acc2397c139f8ef07ac990ee826be96002c349fae230c4f92f52f5f8f13acab379ac69d5a4c9b91480cc0d7ac6fdf2cb5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 2.0.4
2
+ - Fixed: Fields without values could claim the next field + value under certain circumstances. Reported in #22
3
+
1
4
  ## 2.0.3
2
5
  - fixed fixed short circuit expressions, some optimizations, added specs, PR #20
3
6
  - fixed event field assignment, PR #21
@@ -186,12 +186,15 @@ class LogStash::Filters::KV < LogStash::Filters::Base
186
186
  # `bracketsone=(hello world) bracketstwo=[hello world]`
187
187
  #
188
188
  # will be:
189
+ #
189
190
  # * bracketsone: hello world
190
191
  # * bracketstwo: hello world
191
192
  #
192
193
  # instead of:
194
+ #
193
195
  # * bracketsone: (hello
194
196
  # * bracketstwo: [hello
197
+ #
195
198
  config :include_brackets, :validate => :boolean, :default => true
196
199
 
197
200
  # A boolean specifying whether to drill down into values
@@ -215,8 +218,7 @@ class LogStash::Filters::KV < LogStash::Filters::Base
215
218
  valueRxString = "(?:\"([^\"]+)\"|'([^']+)'"
216
219
  valueRxString += "|\\(([^\\)]+)\\)|\\[([^\\]]+)\\]" if @include_brackets
217
220
  valueRxString += "|((?:\\\\ |[^" + @field_split + "])+))"
218
- @scan_re = Regexp.new("((?:\\\\ |[^" + @field_split + @value_split + "])+)\\s*[" + @value_split + "]\\s*" + valueRxString)
219
-
221
+ @scan_re = Regexp.new("((?:\\\\ |[^" + @field_split + @value_split + "])+)\s*[" + @value_split + "]\s*" + valueRxString)
220
222
  @value_split_re = /[#{@value_split}]/
221
223
  end
222
224
 
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-kv'
4
- s.version = '2.0.3'
4
+ s.version = '2.0.4'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "This filter helps automatically parse messages (or specific event fields) which are of the 'foo=bar' variety."
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/plugin install gemname. This gem is not a stand-alone program"
@@ -24,4 +24,3 @@ Gem::Specification.new do |s|
24
24
 
25
25
  s.add_development_dependency 'logstash-devutils'
26
26
  end
27
-
@@ -600,4 +600,33 @@ describe LogStash::Filters::KV do
600
600
  insist { subject["[foo]"] } == ["bar", "yeah", "yeah"]
601
601
  end
602
602
  end
603
+
604
+ describe "keys without values (reported in #22)" do
605
+ subject do
606
+ plugin = LogStash::Filters::KV.new(options)
607
+ plugin.register
608
+ plugin
609
+ end
610
+
611
+ let(:message) { "AccountStatus: 4\r\nAdditionalInformation\r\n\r\nCode: \r\nHttpStatusCode: \r\nIsSuccess: True\r\nMessage: \r\n" }
612
+ let(:data) { {"message" => message} }
613
+ let(:event) { LogStash::Event.new(data) }
614
+ let(:options) {
615
+ {
616
+ "field_split" => "\r\n",
617
+ "value_split" => " ",
618
+ "trimkey" => ":"
619
+ }
620
+ }
621
+
622
+ context "key and splitters with no value" do
623
+ it "should ignore the incomplete key/value pairs" do
624
+ subject.filter(event)
625
+ expect(event["AccountStatus"]).to eq("4")
626
+ expect(event["IsSuccess"]).to eq("True")
627
+ expect(event.to_hash.keys.sort).to eq(
628
+ ["@timestamp", "@version", "AccountStatus", "IsSuccess", "message"])
629
+ end
630
+ end
631
+ end
603
632
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-kv
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-17 00:00:00.000000000 Z
11
+ date: 2016-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core