logstash-core 5.6.1-java → 5.6.2-java

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f953215ab340cf6c3a9af107b36913b29212c41
4
- data.tar.gz: 1f3307dcfb47b183bacff52dad74a43327835f1b
3
+ metadata.gz: 0a1d5e237f74ab92c97ad7b6ec1bd1fa1400d3cb
4
+ data.tar.gz: 84e307b3937569a7b79b8ab9ec45db1a569e5c3c
5
5
  SHA512:
6
- metadata.gz: e5971cfaadce9e651f30b6c76267fc01f6b191fa8955ef1f27e6b104a5233d394435ab7c1550e4e344ee0d181b6b11eb4891a3c390f98ba9c69053f612f82ca1
7
- data.tar.gz: fa1f508b0c2c7b9c684b37c18740b183e349135a50b389ad0d32408b1190177965879cc9f1355d8f66636e3a215ec4b1b22c50b8f49652329ae7bb2d8e2637a0
6
+ metadata.gz: a94a2b80822a8d1d3ea137799a2cc623815b2b830daba4d8a3a14d6f200e644ceb8bf1fce608c822a21739fe3fed9a61b0912fda51d1b7f127923d96dfac0883
7
+ data.tar.gz: 1ffd5556efae4a5e2f657834527e29ab841ae339f3d3e70ef4ecf0a49941f61010fe908799aa01a12186c0028446ac76bca2652460b3280cb8c66b823a73998e
@@ -5,4 +5,4 @@
5
5
  # Note to authors: this should not include dashes because 'gem' barfs if
6
6
  # you include a dash in the version string.
7
7
 
8
- LOGSTASH_CORE_VERSION = "5.6.1"
8
+ LOGSTASH_CORE_VERSION = "5.6.2"
@@ -221,7 +221,11 @@ class LogStash::Runner < Clamp::StrictCommand
221
221
  java.lang.System.setProperty("ls.log.level", setting("log.level"))
222
222
  unless java.lang.System.getProperty("log4j.configurationFile")
223
223
  log4j_config_location = ::File.join(setting("path.settings"), "log4j2.properties")
224
- LogStash::Logging::Logger::reconfigure("file:///" + log4j_config_location)
224
+
225
+ # Windows safe way to produce a file: URI.
226
+ file_schema = "file://" + (LogStash::Environment.windows? ? "/" : "")
227
+ LogStash::Logging::Logger::reconfigure(URI.join(file_schema + File.absolute_path(log4j_config_location)).to_s)
228
+
225
229
  end
226
230
  # override log level that may have been introduced from a custom log4j config file
227
231
  LogStash::Logging::Logger::configure_logging(setting("log.level"))
@@ -11,4 +11,4 @@
11
11
  # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be
12
12
  # fixed.
13
13
 
14
- LOGSTASH_VERSION = "5.6.1"
14
+ LOGSTASH_VERSION = "5.6.2"
@@ -70,7 +70,7 @@ describe LogStash::Api::Modules::NodeStats do
70
70
  "cpu"=>{
71
71
  "total_in_millis"=>Numeric,
72
72
  "percent"=>Numeric,
73
- "load_average" => { "1m" => Numeric }
73
+ # load_average is not supported on Windows, set it below
74
74
  }
75
75
  },
76
76
  "pipeline" => {
@@ -88,5 +88,9 @@ describe LogStash::Api::Modules::NodeStats do
88
88
  }
89
89
  }
90
90
 
91
+ unless LogStash::Environment.windows?
92
+ root_structure["process"]["cpu"]["load_average"] = { "1m" => Numeric }
93
+ end
94
+
91
95
  test_api_and_resources(root_structure)
92
96
  end
@@ -352,4 +352,61 @@ describe LogStash::Event do
352
352
  expect { subject.baz() }.to raise_error(NoMethodError, /undefined method `baz' for/)
353
353
  end
354
354
  end
355
+
356
+ describe "#clone" do
357
+ let(:fieldref) { "[@metadata][fancy]" }
358
+ let(:event1) { LogStash::Event.new("hello" => "world", "@metadata" => { "fancy" => "pants" }) }
359
+ let(:event2) { LogStash::Event.new("hello" => "world", "@metadata" => { "fancy" => {"fancy2" => "pants2"} }) }
360
+ let(:event3) { LogStash::Event.new("hello" => "world", "@metadata" => { "fancy" => {"fancy2" => {"fancy3" => "pants2"}} }) }
361
+ let(:event4) { LogStash::Event.new("hello" => "world", "@metadata" => { "fancy" => {"fancy2" => ["pants1", "pants2"]} }) }
362
+ let(:event5) { LogStash::Event.new("hello" => "world", "@metadata" => { "fancy" => "pants", "smarty" => "pants2" }) }
363
+
364
+ it "should clone metadata fields" do
365
+ cloned = event1.clone
366
+ expect(cloned.get(fieldref)).to eq("pants")
367
+ expect(cloned.to_hash_with_metadata).to include("@metadata")
368
+ end
369
+
370
+ it "should clone metadata fields with nested json" do
371
+ cloned = event2.clone
372
+ expect(cloned.get(fieldref)).to eq({"fancy2" => "pants2"})
373
+ expect(cloned.get("hello")).to eq("world")
374
+ expect(cloned.to_hash).not_to include("@metadata")
375
+ expect(cloned.to_hash_with_metadata).to include("@metadata")
376
+ end
377
+
378
+ it "should clone metadata fields with 2-level nested json" do
379
+ cloned = event3.clone
380
+ expect(cloned.get(fieldref)).to eq({"fancy2" => {"fancy3" => "pants2"}})
381
+ expect(cloned.to_hash).not_to include("@metadata")
382
+ expect(cloned.to_hash_with_metadata).to include("@metadata")
383
+ end
384
+
385
+ it "should clone metadata fields with nested json and array value" do
386
+ cloned = event4.clone
387
+ expect(cloned.get(fieldref)).to eq({"fancy2" => ["pants1", "pants2"]})
388
+ expect(cloned.to_hash_with_metadata).to include("@metadata")
389
+ end
390
+
391
+ it "should clone metadata fields with multiple keys" do
392
+ cloned = event5.clone
393
+ expect(cloned.get(fieldref)).to eq("pants")
394
+ expect(cloned.get("[@metadata][smarty]")).to eq("pants2")
395
+ expect(cloned.to_hash_with_metadata).to include("@metadata")
396
+ end
397
+
398
+ it "mutating cloned event should not affect the original event" do
399
+ cloned = event1.clone
400
+ cloned.set("hello", "foobar")
401
+ expect(cloned.get("hello")).to eq("foobar")
402
+ expect(event1.get("hello")).to eq("world")
403
+ end
404
+
405
+ it "mutating cloned event's metadata should not affect the original event metadata" do
406
+ cloned = event1.clone
407
+ cloned.set("[@metadata][fancy]", "foobar")
408
+ expect(cloned.get("[@metadata][fancy]")).to eq("foobar")
409
+ expect(event1.get("[@metadata][fancy]")).to eq("pants")
410
+ end
411
+ end
355
412
  end
@@ -67,7 +67,7 @@ describe LogStash::Pipeline do
67
67
  end
68
68
 
69
69
  after(:each) do
70
- FileUtils.remove_entry pipeline_settings["path.dead_letter_queue"]
70
+ FileUtils.rm_rf(pipeline_settings["path.dead_letter_queue"])
71
71
  end
72
72
 
73
73
  context "dlq is enabled" do
@@ -85,6 +85,7 @@ describe LogStash::Pipeline do
85
85
  entry = dlq_reader.pollEntry(40)
86
86
  expect(entry).to_not be_nil
87
87
  expect(entry.reason).to eq("my reason")
88
+ subject.shutdown
88
89
  end
89
90
  end
90
91
 
@@ -101,6 +102,7 @@ describe LogStash::Pipeline do
101
102
  subject.run
102
103
  dlq_path = java.nio.file.Paths.get(pipeline_settings_obj.get("path.dead_letter_queue"), pipeline_id)
103
104
  expect(java.nio.file.Files.exists(dlq_path)).to eq(false)
105
+ subject.shutdown
104
106
  end
105
107
  end
106
108
 
@@ -3,17 +3,17 @@ require "spec_helper"
3
3
  require "logstash/settings"
4
4
  require "tmpdir"
5
5
  require "socket" # for UNIXSocket
6
+ require "fileutils"
6
7
 
7
8
  describe LogStash::Setting::WritableDirectory do
8
- let(:mode_rx) { 0555 }
9
9
  # linux is 108, Macos is 104, so use a safe value
10
10
  # Stud::Temporary.pathname, will exceed that size without adding anything
11
11
  let(:parent) { File.join(Dir.tmpdir, Time.now.to_f.to_s) }
12
12
  let(:path) { File.join(parent, "fancy") }
13
13
 
14
14
  before { Dir.mkdir(parent) }
15
- after { Dir.exist?(path) && Dir.unlink(path) rescue nil }
16
- after { Dir.unlink(parent) }
15
+ after { Dir.exist?(path) && FileUtils.rm_rf(path)}
16
+ after { FileUtils.rm_rf(parent) }
17
17
 
18
18
  shared_examples "failure" do
19
19
  before { subject.set(path) }
@@ -44,8 +44,9 @@ describe LogStash::Setting::WritableDirectory do
44
44
  end
45
45
 
46
46
  context "and the directory cannot be created" do
47
- before { File.chmod(mode_rx, parent) }
48
47
  it "should fail" do
48
+ # using chmod does not work on Windows better mock and_raise("message")
49
+ expect(FileUtils).to receive(:mkdir_p).and_raise("foobar")
49
50
  expect { subject.value }.to raise_error
50
51
  end
51
52
  end
@@ -66,7 +67,8 @@ describe LogStash::Setting::WritableDirectory do
66
67
  end
67
68
 
68
69
  context "but is not writable" do
69
- before { File.chmod(0, path) }
70
+ # chmod does not work on Windows, mock writable? instead
71
+ before { expect(File).to receive(:writable?).and_return(false) }
70
72
  it_behaves_like "failure"
71
73
  end
72
74
  end
@@ -84,12 +86,13 @@ describe LogStash::Setting::WritableDirectory do
84
86
  before { socket } # realize `socket` value
85
87
  after { socket.close }
86
88
  it_behaves_like "failure"
87
- end
89
+ end unless LogStash::Environment.windows?
88
90
 
91
+
89
92
  context "but is a symlink" do
90
- before { File::symlink("whatever", path) }
93
+ before { FileUtils.symlink("whatever", path) }
91
94
  it_behaves_like "failure"
92
- end
95
+ end unless LogStash::Environment.windows?
93
96
  end
94
97
 
95
98
  context "when the directory is missing" do
@@ -114,8 +117,8 @@ describe LogStash::Setting::WritableDirectory do
114
117
 
115
118
  context "and cannot be created" do
116
119
  before do
117
- # Remove write permission on the parent
118
- File.chmod(mode_rx, parent)
120
+ # chmod does not work on Windows, mock writable? instead
121
+ expect(File).to receive(:writable?).and_return(false)
119
122
  end
120
123
 
121
124
  it_behaves_like "failure"
@@ -7,10 +7,10 @@ describe LogStash::Timestamp do
7
7
  context "constructors" do
8
8
  it "should work" do
9
9
  t = LogStash::Timestamp.new
10
- expect(t.time.to_i).to be_within(1).of Time.now.to_i
10
+ expect(t.time.to_i).to be_within(2).of Time.now.to_i
11
11
 
12
12
  t = LogStash::Timestamp.now
13
- expect(t.time.to_i).to be_within(1).of Time.now.to_i
13
+ expect(t.time.to_i).to be_within(2).of Time.now.to_i
14
14
 
15
15
  now = Time.now.utc
16
16
  t = LogStash::Timestamp.new(now)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.6.1
4
+ version: 5.6.2
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-18 00:00:00.000000000 Z
11
+ date: 2017-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement