logstash-core 5.0.0.alpha6.snapshot5-java → 5.0.0-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of logstash-core might be problematic. Click here for more details.

Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jars.rb +1 -1
  3. data/lib/logstash-core/version.rb +1 -1
  4. data/lib/logstash/agent.rb +45 -11
  5. data/lib/logstash/api/app_helpers.rb +43 -7
  6. data/lib/logstash/api/commands/stats.rb +2 -1
  7. data/lib/logstash/api/errors.rb +28 -0
  8. data/lib/logstash/api/modules/base.rb +9 -7
  9. data/lib/logstash/api/modules/logging.rb +52 -0
  10. data/lib/logstash/api/modules/node.rb +13 -9
  11. data/lib/logstash/api/modules/root.rb +0 -2
  12. data/lib/logstash/api/modules/stats.rb +0 -2
  13. data/lib/logstash/api/rack_app.rb +5 -3
  14. data/lib/logstash/environment.rb +4 -5
  15. data/lib/logstash/instrument/collector.rb +4 -0
  16. data/lib/logstash/instrument/metric_store.rb +27 -2
  17. data/lib/logstash/logging/logger.rb +15 -4
  18. data/lib/logstash/patches/puma.rb +44 -0
  19. data/lib/logstash/pipeline.rb +8 -15
  20. data/lib/logstash/runner.rb +31 -17
  21. data/lib/logstash/settings.rb +34 -9
  22. data/lib/logstash/util/wrapped_synchronous_queue.rb +26 -9
  23. data/lib/logstash/version.rb +1 -1
  24. data/lib/logstash/webserver.rb +13 -2
  25. data/locales/en.yml +7 -2
  26. data/logstash-core.gemspec +1 -1
  27. data/spec/api/lib/api/logging_spec.rb +41 -0
  28. data/spec/api/lib/api/node_plugins_spec.rb +4 -3
  29. data/spec/api/lib/api/node_spec.rb +2 -0
  30. data/spec/api/lib/api/node_stats_spec.rb +2 -0
  31. data/spec/api/lib/api/plugins_spec.rb +3 -1
  32. data/spec/api/lib/api/root_spec.rb +3 -0
  33. data/spec/api/lib/errors_spec.rb +27 -0
  34. data/spec/api/lib/rack_app_spec.rb +4 -4
  35. data/spec/logstash/agent_spec.rb +112 -26
  36. data/spec/logstash/instrument/metric_store_spec.rb +37 -0
  37. data/spec/logstash/pipeline_spec.rb +54 -0
  38. data/spec/logstash/runner_spec.rb +2 -1
  39. data/spec/logstash/setting_spec.rb +23 -1
  40. data/spec/logstash/settings/string_spec.rb +1 -1
  41. data/spec/logstash/settings_spec.rb +27 -0
  42. data/spec/logstash/util/wrapped_synchronous_queue_spec.rb +49 -11
  43. data/spec/logstash/webserver_spec.rb +76 -18
  44. data/spec/support/helpers.rb +8 -0
  45. data/spec/support/mocks_classes.rb +22 -0
  46. data/spec/support/shared_examples.rb +10 -0
  47. data/vendor/jars/org/logstash/logstash-core/{5.0.0-alpha6/logstash-core-5.0.0-alpha6.jar → 5.0.0/logstash-core-5.0.0.jar} +0 -0
  48. metadata +16 -7
@@ -100,6 +100,60 @@ describe LogStash::Pipeline do
100
100
  pipeline_settings_obj.reset
101
101
  end
102
102
 
103
+
104
+ describe "event cancellation" do
105
+ # test harness for https://github.com/elastic/logstash/issues/6055
106
+
107
+ let(:output) { DummyOutputWithEventsArray.new }
108
+
109
+ before do
110
+ allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator)
111
+ allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutputwitheventsarray").and_return(DummyOutputWithEventsArray)
112
+ allow(LogStash::Plugin).to receive(:lookup).with("filter", "drop").and_call_original
113
+ allow(LogStash::Plugin).to receive(:lookup).with("filter", "mutate").and_call_original
114
+ allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_call_original
115
+ allow(DummyOutputWithEventsArray).to receive(:new).with(any_args).and_return(output)
116
+ end
117
+
118
+ let(:config) do
119
+ <<-CONFIG
120
+ input {
121
+ generator {
122
+ lines => ["1", "2", "END"]
123
+ count => 1
124
+ }
125
+ }
126
+ filter {
127
+ if [message] == "1" {
128
+ drop {}
129
+ }
130
+ mutate { add_tag => ["notdropped"] }
131
+ }
132
+ output { dummyoutputwitheventsarray {} }
133
+ CONFIG
134
+ end
135
+
136
+ it "should not propage cancelled events from filter to output" do
137
+ abort_on_exception_state = Thread.abort_on_exception
138
+ Thread.abort_on_exception = true
139
+
140
+ pipeline = LogStash::Pipeline.new(config, pipeline_settings_obj)
141
+ Thread.new { pipeline.run }
142
+ sleep 0.1 while !pipeline.ready?
143
+ wait(3).for do
144
+ # give us a bit of time to flush the events
145
+ # puts("*****" + output.events.map{|e| e.message}.to_s)
146
+ output.events.map{|e| e.get("message")}.include?("END")
147
+ end.to be_truthy
148
+ expect(output.events.size).to eq(2)
149
+ expect(output.events[0].get("tags")).to eq(["notdropped"])
150
+ expect(output.events[1].get("tags")).to eq(["notdropped"])
151
+ pipeline.shutdown
152
+
153
+ Thread.abort_on_exception = abort_on_exception_state
154
+ end
155
+ end
156
+
103
157
  describe "defaulting the pipeline workers based on thread safety" do
104
158
  before(:each) do
105
159
  allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinput").and_return(DummyInput)
@@ -21,6 +21,7 @@ describe LogStash::Runner do
21
21
  allow(LogStash::Runner).to receive(:logger).and_return(logger)
22
22
  allow(logger).to receive(:debug?).and_return(true)
23
23
  allow(logger).to receive(:subscribe).with(any_args)
24
+ allow(logger).to receive(:debug) {}
24
25
  allow(logger).to receive(:log) {}
25
26
  allow(logger).to receive(:info) {}
26
27
  allow(logger).to receive(:fatal) {}
@@ -279,7 +280,7 @@ describe LogStash::Runner do
279
280
  it "should set log level to warn" do
280
281
  args = ["--version"]
281
282
  subject.run("bin/logstash", args)
282
- expect(logger.level).to eq(:warn)
283
+ expect(logger.level).to eq(:info)
283
284
  end
284
285
  end
285
286
  context "when setting to debug" do
@@ -63,6 +63,7 @@ describe LogStash::Setting do
63
63
  end
64
64
  end
65
65
  end
66
+
66
67
  describe "#set" do
67
68
  subject { described_class.new("number", Numeric, 1) }
68
69
  it "should change the value of a setting" do
@@ -77,12 +78,33 @@ describe LogStash::Setting do
77
78
  expect(subject.set?).to eq(true)
78
79
  end
79
80
  end
80
-
81
81
  context "when the argument's class does not match @klass" do
82
82
  it "should throw an exception" do
83
83
  expect { subject.set("not a number") }.to raise_error
84
84
  end
85
85
  end
86
+ context "when strict=false" do
87
+ let(:strict) { false }
88
+ subject { described_class.new("number", Numeric, 1, strict) }
89
+ before do
90
+ expect(subject).not_to receive(:validate)
91
+ end
92
+
93
+ it "should not call #validate" do
94
+ subject.set(123)
95
+ end
96
+ end
97
+ context "when strict=true" do
98
+ let(:strict) { true }
99
+ subject { described_class.new("number", Numeric, 1, strict) }
100
+ before do
101
+ expect(subject).to receive(:validate)
102
+ end
103
+
104
+ it "should call #validate" do
105
+ subject.set(123)
106
+ end
107
+ end
86
108
  end
87
109
 
88
110
  describe "#reset" do
@@ -4,7 +4,7 @@ require "logstash/settings"
4
4
 
5
5
  describe LogStash::Setting::String do
6
6
  let(:possible_values) { ["a", "b", "c"] }
7
- subject { described_class.new("mytext", nil, false, possible_values) }
7
+ subject { described_class.new("mytext", possible_values.first, true, possible_values) }
8
8
  describe "#set" do
9
9
  context "when a value is given outside of possible_values" do
10
10
  it "should raise an ArgumentError" do
@@ -59,4 +59,31 @@ describe LogStash::Settings do
59
59
  expect(subset.get("num.2")).to eq(1000)
60
60
  end
61
61
  end
62
+
63
+ describe "#validate_all" do
64
+ subject { described_class.new }
65
+ let(:numeric_setting_name) { "example" }
66
+ let(:numeric_setting) { LogStash::Setting.new(numeric_setting_name, Numeric, 1, false) }
67
+
68
+ before do
69
+ subject.register(numeric_setting)
70
+ subject.set_value(numeric_setting_name, value)
71
+ end
72
+
73
+ context "when any setting is invalid" do
74
+ let(:value) { "some string" }
75
+
76
+ it "should fail" do
77
+ expect { subject.validate_all }.to raise_error
78
+ end
79
+ end
80
+
81
+ context "when all settings are valid" do
82
+ let(:value) { 123 }
83
+
84
+ it "should succeed" do
85
+ expect { subject.validate_all }.not_to raise_error
86
+ end
87
+ end
88
+ end
62
89
  end
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
3
  require "logstash/util/wrapped_synchronous_queue"
4
+ require "logstash/instrument/collector"
4
5
 
5
6
  describe LogStash::Util::WrappedSynchronousQueue do
6
7
  context "#offer" do
@@ -45,11 +46,47 @@ describe LogStash::Util::WrappedSynchronousQueue do
45
46
  end
46
47
 
47
48
  describe "WriteClient | ReadClient" do
48
- context "when writing to the queue" do
49
- let(:queue) { DummyQueue.new }
50
- let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)}
51
- let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)}
49
+ let(:queue) { DummyQueue.new }
50
+ let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)}
51
+ let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)}
52
+
53
+ context "when reading from the queue" do
54
+ let(:collector) { LogStash::Instrument::Collector.new }
55
+
56
+ before do
57
+ read_client.set_events_metric(LogStash::Instrument::Metric.new(collector).namespace(:events))
58
+ read_client.set_pipeline_metric(LogStash::Instrument::Metric.new(collector).namespace(:pipeline))
59
+ end
60
+
61
+ context "when the queue is empty" do
62
+ it "doesnt record the `duration_in_millis`" do
63
+ batch = read_client.take_batch
64
+ read_client.close_batch(batch)
65
+ store = collector.snapshot_metric.metric_store
66
+ expect(store.size).to eq(0)
67
+ end
68
+ end
52
69
 
70
+ context "when we have item in the queue" do
71
+ it "records the `duration_in_millis`" do
72
+ batch = write_client.get_new_batch
73
+ 5.times {|i| batch.push("value-#{i}")}
74
+ write_client.push_batch(batch)
75
+ read_batch = read_client.take_batch
76
+ sleep(0.1) # simulate some work?
77
+ read_client.close_batch(batch)
78
+ store = collector.snapshot_metric.metric_store
79
+
80
+ expect(store.size).to eq(4)
81
+ expect(store.get_shallow(:events, :in).value).to eq(5)
82
+ expect(store.get_shallow(:events, :duration_in_millis).value).to be > 0
83
+ expect(store.get_shallow(:pipeline, :in).value).to eq(5)
84
+ expect(store.get_shallow(:pipeline, :duration_in_millis).value).to be > 0
85
+ end
86
+ end
87
+ end
88
+
89
+ context "when writing to the queue" do
53
90
  before :each do
54
91
  read_client.set_events_metric(LogStash::Instrument::NullMetric.new)
55
92
  read_client.set_pipeline_metric(LogStash::Instrument::NullMetric.new)
@@ -57,22 +94,23 @@ describe LogStash::Util::WrappedSynchronousQueue do
57
94
 
58
95
  it "appends batches to the queue" do
59
96
  batch = write_client.get_new_batch
60
- 5.times {|i| batch.push("value-#{i}")}
97
+ 5.times {|i| batch.push(LogStash::Event.new({"message" => "value-#{i}"}))}
61
98
  write_client.push_batch(batch)
62
99
  read_batch = read_client.take_batch
63
100
  expect(read_batch.size).to eq(5)
64
101
  i = 0
65
102
  read_batch.each do |data|
66
- expect(data).to eq("value-#{i}")
67
- read_batch.cancel("value-#{i}") if i > 2
68
- read_batch.merge("generated-#{i}") if i > 2
103
+ expect(data.get("message")).to eq("value-#{i}")
104
+ # read_batch.cancel("value-#{i}") if i > 2 # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor
105
+ data.cancel if i > 2
106
+ read_batch.merge(LogStash::Event.new({"message" => "generated-#{i}"})) if i > 2
69
107
  i += 1
70
108
  end
71
- expect(read_batch.cancelled_size).to eq(2)
109
+ # expect(read_batch.cancelled_size).to eq(2) # disabled for https://github.com/elastic/logstash/issues/6055
72
110
  i = 0
73
111
  read_batch.each do |data|
74
- expect(data).to eq("value-#{i}") if i < 3
75
- expect(data).to eq("generated-#{i}") if i > 2
112
+ expect(data.get("message")).to eq("value-#{i}") if i < 3
113
+ expect(data.get("message")).to eq("generated-#{i}") if i > 2
76
114
  i += 1
77
115
  end
78
116
  end
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  # require "logstash/json"
3
3
  require "logstash/webserver"
4
+ require_relative "../support/helpers"
4
5
  require "socket"
5
6
  require "spec_helper"
6
7
  require "open-uri"
@@ -9,11 +10,15 @@ def block_ports(range)
9
10
  servers = []
10
11
 
11
12
  range.each do |port|
12
- server = TCPServer.new("localhost", port)
13
- Thread.new do
14
- client = server.accept rescue nil
13
+ begin
14
+ server = TCPServer.new("localhost", port)
15
+ Thread.new do
16
+ client = server.accept rescue nil
17
+ end
18
+ servers << server
19
+ rescue => e
20
+ # The port can already be taken
15
21
  end
16
- servers << server
17
22
  end
18
23
 
19
24
  sleep(1)
@@ -36,29 +41,56 @@ describe LogStash::WebServer do
36
41
  Thread.abort_on_exception = @abort
37
42
  end
38
43
 
39
- let(:logger) { double("logger") }
44
+ let(:logger) { LogStash::Logging::Logger.new("testing") }
40
45
  let(:agent) { double("agent") }
41
46
  let(:webserver) { double("webserver") }
42
47
 
43
48
  before :each do
44
- [:info, :warn, :error, :fatal, :debug].each do |level|
45
- allow(logger).to receive(level)
46
- end
47
- [:info?, :warn?, :error?, :fatal?, :debug?].each do |level|
48
- allow(logger).to receive(level)
49
- end
50
-
51
49
  allow(webserver).to receive(:address).and_return("127.0.0.1")
52
50
  allow(agent).to receive(:webserver).and_return(webserver)
53
51
  end
54
52
 
55
- context "when the port is already in use and a range is provided" do
56
- subject { LogStash::WebServer.new(logger,
57
- agent,
58
- { :http_host => "localhost", :http_ports => port_range
59
- })}
53
+ subject { LogStash::WebServer.new(logger,
54
+ agent,
55
+ { :http_host => "localhost", :http_ports => port_range })}
56
+
57
+ let(:port_range) { 10000..10010 }
58
+
59
+ context "when an exception occur in the server thread" do
60
+ let(:spy_output) { spy("stderr").as_null_object }
61
+
62
+ it "should not log to STDERR" do
63
+ backup_stderr = STDERR
64
+ backup_stdout = STDOUT
65
+
66
+ # We are redefining constants, so lets silence the warning
67
+ silence_warnings do
68
+ STDOUT = STDERR = spy_output
69
+ end
70
+
71
+ expect(spy_output).not_to receive(:puts).with(any_args)
72
+ expect(spy_output).not_to receive(:write).with(any_args)
73
+
74
+ # This trigger an infinite loop in the reactor
75
+ expect(IO).to receive(:select).and_raise(IOError).at_least(:once)
76
+
77
+ t = Thread.new do
78
+ subject.run
79
+ end
80
+
81
+ sleep(1)
82
+
83
+ # We cannot use stop here, since the code is stuck in an infinite loop
84
+ t.kill rescue nil
60
85
 
61
- let(:port_range) { 10000..10010 }
86
+ silence_warnings do
87
+ STDERR = backup_stderr
88
+ STDOUT = backup_stdout
89
+ end
90
+ end
91
+ end
92
+
93
+ context "when the port is already in use and a range is provided" do
62
94
  after(:each) { free_ports(@servers) }
63
95
 
64
96
  context "when we have available ports" do
@@ -93,3 +125,29 @@ describe LogStash::WebServer do
93
125
  end
94
126
  end
95
127
  end
128
+
129
+ describe LogStash::IOWrappedLogger do
130
+ let(:logger) { spy("logger") }
131
+ let(:message) { "foobar" }
132
+
133
+ subject { described_class.new(logger) }
134
+
135
+ it "responds to puts" do
136
+ subject.puts(message)
137
+ expect(logger).to have_received(:debug).with(message)
138
+ end
139
+
140
+ it "responds to write" do
141
+ subject.write(message)
142
+ expect(logger).to have_received(:debug).with(message)
143
+ end
144
+
145
+ it "reponds to <<" do
146
+ subject << message
147
+ expect(logger).to have_received(:debug).with(message)
148
+ end
149
+
150
+ it "responds to sync=(v)" do
151
+ expect{ subject.sync = true }.not_to raise_error
152
+ end
153
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ def silence_warnings
3
+ warn_level = $VERBOSE
4
+ $VERBOSE = nil
5
+ yield
6
+ ensure
7
+ $VERBOSE = warn_level
8
+ end
@@ -25,3 +25,25 @@ class DummyOutput < LogStash::Outputs::Base
25
25
  @num_closes = 1
26
26
  end
27
27
  end
28
+
29
+ class DummyOutputWithEventsArray < LogStash::Outputs::Base
30
+ config_name "dummyoutput2"
31
+ milestone 2
32
+
33
+ attr_reader :events
34
+
35
+ def initialize(params={})
36
+ super
37
+ @events = []
38
+ end
39
+
40
+ def register
41
+ end
42
+
43
+ def receive(event)
44
+ @events << event
45
+ end
46
+
47
+ def close
48
+ end
49
+ end
@@ -95,4 +95,14 @@ shared_examples "metrics commons operations" do
95
95
  end
96
96
  end
97
97
 
98
+ shared_examples "not found" do
99
+ it "should return a 404 to unknown request" do
100
+ do_request { get "/i_want_to_believe-#{Time.now.to_i}" }
101
+ expect(last_response.content_type).to eq("application/json")
102
+ expect(last_response).not_to be_ok
103
+ expect(last_response.status).to eq(404)
104
+ expect(LogStash::Json.load(last_response.body)).to include("status" => 404)
105
+ expect(LogStash::Json.load(last_response.body)["path"]).not_to be_nil
106
+ end
107
+ end
98
108
 
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0.alpha6.snapshot5
4
+ version: 5.0.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-26 00:00:00.000000000 Z
11
+ date: 2016-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 5.0.0.alpha6.snapshot5
18
+ version: 5.0.0
19
19
  name: logstash-core-event-java
20
20
  prerelease: false
21
21
  type: :runtime
@@ -23,7 +23,7 @@ dependencies:
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.0.alpha6.snapshot5
26
+ version: 5.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
@@ -303,7 +303,9 @@ files:
303
303
  - lib/logstash/api/commands/stats.rb
304
304
  - lib/logstash/api/commands/system/basicinfo_command.rb
305
305
  - lib/logstash/api/commands/system/plugins_command.rb
306
+ - lib/logstash/api/errors.rb
306
307
  - lib/logstash/api/modules/base.rb
308
+ - lib/logstash/api/modules/logging.rb
307
309
  - lib/logstash/api/modules/node.rb
308
310
  - lib/logstash/api/modules/node_stats.rb
309
311
  - lib/logstash/api/modules/plugins.rb
@@ -361,6 +363,7 @@ files:
361
363
  - lib/logstash/patches/cabin.rb
362
364
  - lib/logstash/patches/clamp.rb
363
365
  - lib/logstash/patches/profile_require_calls.rb
366
+ - lib/logstash/patches/puma.rb
364
367
  - lib/logstash/patches/rubygems.rb
365
368
  - lib/logstash/patches/stronger_openssl_defaults.rb
366
369
  - lib/logstash/pipeline.rb
@@ -393,6 +396,7 @@ files:
393
396
  - lib/logstash/webserver.rb
394
397
  - locales/en.yml
395
398
  - logstash-core.gemspec
399
+ - spec/api/lib/api/logging_spec.rb
396
400
  - spec/api/lib/api/node_plugins_spec.rb
397
401
  - spec/api/lib/api/node_spec.rb
398
402
  - spec/api/lib/api/node_stats_spec.rb
@@ -400,6 +404,7 @@ files:
400
404
  - spec/api/lib/api/root_spec.rb
401
405
  - spec/api/lib/api/support/resource_dsl_methods.rb
402
406
  - spec/api/lib/commands/stats.rb
407
+ - spec/api/lib/errors_spec.rb
403
408
  - spec/api/lib/rack_app_spec.rb
404
409
  - spec/api/spec_helper.rb
405
410
  - spec/conditionals_spec.rb
@@ -450,6 +455,7 @@ files:
450
455
  - spec/logstash/util_spec.rb
451
456
  - spec/logstash/webserver_spec.rb
452
457
  - spec/static/i18n_spec.rb
458
+ - spec/support/helpers.rb
453
459
  - spec/support/matchers.rb
454
460
  - spec/support/mocks_classes.rb
455
461
  - spec/support/shared_examples.rb
@@ -458,7 +464,7 @@ files:
458
464
  - vendor/jars/org/apache/logging/log4j/log4j-1.2-api/2.6.2/log4j-1.2-api-2.6.2.jar
459
465
  - vendor/jars/org/apache/logging/log4j/log4j-api/2.6.2/log4j-api-2.6.2.jar
460
466
  - vendor/jars/org/apache/logging/log4j/log4j-core/2.6.2/log4j-core-2.6.2.jar
461
- - vendor/jars/org/logstash/logstash-core/5.0.0-alpha6/logstash-core-5.0.0-alpha6.jar
467
+ - vendor/jars/org/logstash/logstash-core/5.0.0/logstash-core-5.0.0.jar
462
468
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
463
469
  licenses:
464
470
  - Apache License (2.0)
@@ -475,9 +481,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
475
481
  version: '0'
476
482
  required_rubygems_version: !ruby/object:Gem::Requirement
477
483
  requirements:
478
- - - ">"
484
+ - - ">="
479
485
  - !ruby/object:Gem::Version
480
- version: 1.3.1
486
+ version: '0'
481
487
  requirements: []
482
488
  rubyforge_project:
483
489
  rubygems_version: 2.4.8
@@ -485,6 +491,7 @@ signing_key:
485
491
  specification_version: 4
486
492
  summary: logstash-core - The core components of logstash
487
493
  test_files:
494
+ - spec/api/lib/api/logging_spec.rb
488
495
  - spec/api/lib/api/node_plugins_spec.rb
489
496
  - spec/api/lib/api/node_spec.rb
490
497
  - spec/api/lib/api/node_stats_spec.rb
@@ -492,6 +499,7 @@ test_files:
492
499
  - spec/api/lib/api/root_spec.rb
493
500
  - spec/api/lib/api/support/resource_dsl_methods.rb
494
501
  - spec/api/lib/commands/stats.rb
502
+ - spec/api/lib/errors_spec.rb
495
503
  - spec/api/lib/rack_app_spec.rb
496
504
  - spec/api/spec_helper.rb
497
505
  - spec/conditionals_spec.rb
@@ -542,6 +550,7 @@ test_files:
542
550
  - spec/logstash/util_spec.rb
543
551
  - spec/logstash/webserver_spec.rb
544
552
  - spec/static/i18n_spec.rb
553
+ - spec/support/helpers.rb
545
554
  - spec/support/matchers.rb
546
555
  - spec/support/mocks_classes.rb
547
556
  - spec/support/shared_examples.rb