logstash-core 6.6.2-java → 6.7.0-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 +4 -4
- data/lib/logstash/agent.rb +16 -9
- data/lib/logstash/compiler/lscl.rb +2 -3
- data/lib/logstash/instrument/metric_store.rb +1 -1
- data/lib/logstash/java_pipeline.rb +13 -8
- data/lib/logstash/patches/resolv.rb +0 -21
- data/lib/logstash/pipeline.rb +1 -1
- data/lib/logstash/runner.rb +22 -0
- data/lib/logstash/settings.rb +5 -5
- data/lib/logstash/util.rb +11 -1
- data/lib/logstash/util/duration_formatter.rb +1 -1
- data/spec/logstash/config/mixin_spec.rb +1 -0
- data/spec/logstash/event_spec.rb +2 -2
- data/spec/logstash/filters/base_spec.rb +14 -0
- data/spec/logstash/legacy_ruby_event_spec.rb +6 -5
- data/spec/logstash/queue_factory_spec.rb +1 -1
- data/spec/logstash/settings/array_coercible_spec.rb +1 -1
- data/spec/logstash/settings/bytes_spec.rb +2 -2
- data/spec/logstash/settings/port_range_spec.rb +1 -1
- data/spec/logstash/util/time_value_spec.rb +1 -1
- data/versions-gem-copy.yml +8 -8
- metadata +24 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d66a9d2f5580d1919c066f11a86cd018a03294e15cfa1913e2e1f2f3cda1fb3e
|
4
|
+
data.tar.gz: 6618994f401fbacb271f55c39f9774ed54a3ac05098f9e70d174455772ece81b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f8120ccc57810e81ea82678d66145d71333d519bd0acaffc5956c62854e13f88ac35fa941e86db30c94afae82a5b6e2100521926cf80b7aba74dbef244cb84e
|
7
|
+
data.tar.gz: 4bb47679f660649b448a74d942886b0a9994c2527eb183b0f7cab470ac23d49341219e6d404e0f7afba20fceeb94670b230cf3523195235ee1b475614ec83b4a
|
data/lib/logstash/agent.rb
CHANGED
@@ -39,6 +39,8 @@ class LogStash::Agent
|
|
39
39
|
@exclusive_lock = Mutex.new
|
40
40
|
@webserver_control_lock = Mutex.new
|
41
41
|
|
42
|
+
@convergence_lock = Mutex.new
|
43
|
+
|
42
44
|
# Special bus object for inter-pipelines communications. Used by the `pipeline` input/output
|
43
45
|
@pipeline_bus = org.logstash.plugins.pipeline.PipelineBus.new
|
44
46
|
|
@@ -163,12 +165,7 @@ class LogStash::Agent
|
|
163
165
|
end
|
164
166
|
end
|
165
167
|
|
166
|
-
|
167
|
-
# content of it.
|
168
|
-
converge_result = nil
|
169
|
-
|
170
|
-
pipeline_actions = resolve_actions(results.response)
|
171
|
-
converge_result = converge_state(pipeline_actions)
|
168
|
+
converge_result = resolve_actions_and_converge_state(results.response)
|
172
169
|
update_metrics(converge_result)
|
173
170
|
|
174
171
|
logger.info(
|
@@ -187,7 +184,7 @@ class LogStash::Agent
|
|
187
184
|
|
188
185
|
# Calculate the Logstash uptime in milliseconds
|
189
186
|
#
|
190
|
-
# @return [
|
187
|
+
# @return [Integer] Uptime in milliseconds
|
191
188
|
def uptime
|
192
189
|
((Time.now.to_f - STARTED_AT.to_f) * 1000.0).to_i
|
193
190
|
end
|
@@ -292,6 +289,15 @@ class LogStash::Agent
|
|
292
289
|
@running.make_true
|
293
290
|
end
|
294
291
|
|
292
|
+
# @param pipeline_configs [Array<Config::PipelineConfig>]
|
293
|
+
# @return [ConvergeResult]
|
294
|
+
def resolve_actions_and_converge_state(pipeline_configs)
|
295
|
+
@convergence_lock.synchronize do
|
296
|
+
pipeline_actions = resolve_actions(pipeline_configs)
|
297
|
+
converge_state(pipeline_actions)
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
295
301
|
# We depends on a series of task derived from the internal state and what
|
296
302
|
# need to be run, theses actions are applied to the current pipelines to converge to
|
297
303
|
# the desired state.
|
@@ -304,6 +310,7 @@ class LogStash::Agent
|
|
304
310
|
#
|
305
311
|
def converge_state(pipeline_actions)
|
306
312
|
logger.debug("Converging pipelines state", :actions_count => pipeline_actions.size)
|
313
|
+
fail("Illegal access to `LogStash::Agent#converge_state()` without exclusive lock at #{caller[1]}") unless @convergence_lock.owned?
|
307
314
|
|
308
315
|
converge_result = LogStash::ConvergeResult.new(pipeline_actions.size)
|
309
316
|
|
@@ -352,6 +359,7 @@ class LogStash::Agent
|
|
352
359
|
end
|
353
360
|
|
354
361
|
def resolve_actions(pipeline_configs)
|
362
|
+
fail("Illegal access to `LogStash::Agent#resolve_actions()` without exclusive lock at #{caller[1]}") unless @convergence_lock.owned?
|
355
363
|
@state_resolver.resolve(@pipelines_registry, pipeline_configs)
|
356
364
|
end
|
357
365
|
|
@@ -419,8 +427,7 @@ class LogStash::Agent
|
|
419
427
|
# In this context I could just call shutdown, but I've decided to
|
420
428
|
# use the stop action implementation for that so we have the same code.
|
421
429
|
# This also give us some context into why a shutdown is failing
|
422
|
-
|
423
|
-
converge_state(pipeline_actions)
|
430
|
+
resolve_actions_and_converge_state([]) # We stop all the pipeline, so we converge to a empty state
|
424
431
|
end
|
425
432
|
|
426
433
|
|
@@ -317,10 +317,9 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
|
|
317
317
|
|
318
318
|
def precedence(op)
|
319
319
|
# Believe this is right for logstash?
|
320
|
-
|
321
|
-
when AND_METHOD
|
320
|
+
if op == AND_METHOD
|
322
321
|
2
|
323
|
-
|
322
|
+
elsif op == OR_METHOD
|
324
323
|
1
|
325
324
|
else
|
326
325
|
raise ArgumentError, "Unexpected operator #{op}"
|
@@ -302,7 +302,7 @@ module LogStash module Instrument
|
|
302
302
|
#
|
303
303
|
# @param [Concurrent::Map] Map to search for the key
|
304
304
|
# @param [Array] List of path to create
|
305
|
-
# @param [
|
305
|
+
# @param [Integer] Which part from the list to create
|
306
306
|
#
|
307
307
|
def fetch_or_store_namespace_recursively(map, namespaces_path, idx = 0)
|
308
308
|
current = namespaces_path[idx]
|
@@ -26,8 +26,6 @@ module LogStash; class JavaPipeline < JavaBasePipeline
|
|
26
26
|
|
27
27
|
@worker_threads = []
|
28
28
|
|
29
|
-
@java_inputs_controller = org.logstash.execution.InputsController.new(lir_execution.javaInputs)
|
30
|
-
|
31
29
|
@drain_queue = settings.get_value("queue.drain") || settings.get("queue.type") == "memory"
|
32
30
|
|
33
31
|
@events_filtered = java.util.concurrent.atomic.LongAdder.new
|
@@ -259,8 +257,13 @@ module LogStash; class JavaPipeline < JavaBasePipeline
|
|
259
257
|
end
|
260
258
|
|
261
259
|
def wait_inputs
|
262
|
-
@input_threads.each
|
263
|
-
|
260
|
+
@input_threads.each do |thread|
|
261
|
+
if thread.class == Java::JavaObject
|
262
|
+
thread.to_java.join
|
263
|
+
else
|
264
|
+
thread.join
|
265
|
+
end
|
266
|
+
end
|
264
267
|
end
|
265
268
|
|
266
269
|
def start_inputs
|
@@ -279,11 +282,14 @@ module LogStash; class JavaPipeline < JavaBasePipeline
|
|
279
282
|
|
280
283
|
# then after all input plugins are successfully registered, start them
|
281
284
|
inputs.each { |input| start_input(input) }
|
282
|
-
@java_inputs_controller.startInputs(self)
|
283
285
|
end
|
284
286
|
|
285
287
|
def start_input(plugin)
|
286
|
-
|
288
|
+
if plugin.class == LogStash::JavaInputDelegator
|
289
|
+
@input_threads << plugin.start
|
290
|
+
else
|
291
|
+
@input_threads << Thread.new { inputworker(plugin) }
|
292
|
+
end
|
287
293
|
end
|
288
294
|
|
289
295
|
def inputworker(plugin)
|
@@ -345,7 +351,6 @@ module LogStash; class JavaPipeline < JavaBasePipeline
|
|
345
351
|
def stop_inputs
|
346
352
|
@logger.debug("Closing inputs", default_logging_keys)
|
347
353
|
inputs.each(&:do_stop)
|
348
|
-
@java_inputs_controller.stopInputs
|
349
354
|
@logger.debug("Closed inputs", default_logging_keys)
|
350
355
|
end
|
351
356
|
|
@@ -394,7 +399,7 @@ module LogStash; class JavaPipeline < JavaBasePipeline
|
|
394
399
|
end
|
395
400
|
|
396
401
|
def plugin_threads_info
|
397
|
-
input_threads = @input_threads.select {|t| t.alive? }
|
402
|
+
input_threads = @input_threads.select {|t| t.class == Thread && t.alive? }
|
398
403
|
worker_threads = @worker_threads.select {|t| t.alive? }
|
399
404
|
(input_threads + worker_threads).map {|t| Util.thread_info(t) }
|
400
405
|
end
|
@@ -10,7 +10,6 @@ require "resolv"
|
|
10
10
|
|
11
11
|
# make sure we abort if a known correct JRuby version is installed
|
12
12
|
# to avoid having an unnecessary legacy patch being applied in the future.
|
13
|
-
raise("Unnecessary patch on resolv.rb for JRuby version 9.1.16+") if Gem::Version.new(JRUBY_VERSION) >= Gem::Version.new("9.1.16.0")
|
14
13
|
|
15
14
|
# The code below is copied from JRuby 9.1.16.0 resolv.rb:
|
16
15
|
# https://github.com/jruby/jruby/blob/9.1.16.0/lib/ruby/stdlib/resolv.rb#L775-L784
|
@@ -18,23 +17,3 @@ raise("Unnecessary patch on resolv.rb for JRuby version 9.1.16+") if Gem::Versio
|
|
18
17
|
# JRuby is Copyright (c) 2007-2017 The JRuby project, and is released
|
19
18
|
# under a tri EPL/GPL/LGPL license.
|
20
19
|
# Full license available at https://github.com/jruby/jruby/blob/9.1.16.0/COPYING
|
21
|
-
|
22
|
-
class Resolv
|
23
|
-
class DNS
|
24
|
-
class Requester
|
25
|
-
class UnconnectedUDP
|
26
|
-
def sender(msg, data, host, port=Port)
|
27
|
-
sock = @socks_hash[host.index(':') ? "::" : "0.0.0.0"]
|
28
|
-
return nil if !sock
|
29
|
-
service = [IPAddr.new(host), port]
|
30
|
-
id = DNS.allocate_request_id(service[0], service[1])
|
31
|
-
request = msg.encode
|
32
|
-
request[0,2] = [id].pack('n')
|
33
|
-
return @senders[[service, id]] =
|
34
|
-
Sender.new(request, data, sock, host, port)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
data/lib/logstash/pipeline.rb
CHANGED
@@ -542,7 +542,7 @@ module LogStash; class Pipeline < BasePipeline
|
|
542
542
|
|
543
543
|
# Calculate the uptime in milliseconds
|
544
544
|
#
|
545
|
-
# @return [
|
545
|
+
# @return [Integer] Uptime in milliseconds, 0 if the pipeline is not started
|
546
546
|
def uptime
|
547
547
|
return 0 if started_at.nil?
|
548
548
|
((Time.now.to_f - started_at.to_f) * 1000.0).to_i
|
data/lib/logstash/runner.rb
CHANGED
@@ -276,6 +276,17 @@ class LogStash::Runner < Clamp::StrictCommand
|
|
276
276
|
LogStash::PLUGIN_REGISTRY.hooks.register_emitter(self.class, @dispatcher)
|
277
277
|
|
278
278
|
@settings.validate_all
|
279
|
+
|
280
|
+
if @settings.registered?("xpack.monitoring.enabled")
|
281
|
+
verify_deprecated_setting("xpack.monitoring.elasticsearch.url", "xpack.monitoring.elasticsearch.hosts")
|
282
|
+
verify_deprecated_setting("xpack.monitoring.elasticsearch.ssl.ca", "xpack.monitoring.elasticsearch.ssl.certificate_authority")
|
283
|
+
end
|
284
|
+
|
285
|
+
if @settings.registered?("xpack.management.enabled")
|
286
|
+
verify_deprecated_setting("xpack.management.elasticsearch.url", "xpack.management.elasticsearch.hosts")
|
287
|
+
verify_deprecated_setting("xpack.management.elasticsearch.ssl.ca", "xpack.management.elasticsearch.ssl.certificate_authority")
|
288
|
+
end
|
289
|
+
|
279
290
|
@dispatcher.fire(:before_bootstrap_checks)
|
280
291
|
|
281
292
|
return start_shell(setting("interactive"), binding) if setting("interactive")
|
@@ -501,4 +512,15 @@ class LogStash::Runner < Clamp::StrictCommand
|
|
501
512
|
@settings.get_value(key)
|
502
513
|
end
|
503
514
|
|
515
|
+
def verify_deprecated_setting(old_setting, new_setting)
|
516
|
+
if @settings.set?(old_setting)
|
517
|
+
logger.warn("Deprecated setting `#{old_setting}` please use `#{new_setting}`")
|
518
|
+
if @settings.set?(new_setting)
|
519
|
+
signal_usage_error("Both `#{new_setting}` and the deprecated `#{old_setting}` settings are set, please remove `#{old_setting}`")
|
520
|
+
else
|
521
|
+
@settings.set_value(new_setting, @settings.get_value(old_setting))
|
522
|
+
end
|
523
|
+
end
|
524
|
+
end
|
525
|
+
|
504
526
|
end
|
data/lib/logstash/settings.rb
CHANGED
@@ -368,7 +368,7 @@ module LogStash
|
|
368
368
|
case value
|
369
369
|
when ::Range
|
370
370
|
value
|
371
|
-
when ::
|
371
|
+
when ::Integer
|
372
372
|
value..value
|
373
373
|
when ::String
|
374
374
|
first, last = value.split(PORT_SEPARATOR)
|
@@ -481,11 +481,11 @@ module LogStash
|
|
481
481
|
|
482
482
|
class Bytes < Coercible
|
483
483
|
def initialize(name, default=nil, strict=true)
|
484
|
-
super(name, ::
|
484
|
+
super(name, ::Integer, default, strict=true) { |value| valid?(value) }
|
485
485
|
end
|
486
486
|
|
487
487
|
def valid?(value)
|
488
|
-
value.is_a?(
|
488
|
+
value.is_a?(::Integer) && value >= 0
|
489
489
|
end
|
490
490
|
|
491
491
|
def coerce(value)
|
@@ -508,11 +508,11 @@ module LogStash
|
|
508
508
|
|
509
509
|
class TimeValue < Coercible
|
510
510
|
def initialize(name, default, strict=true, &validator_proc)
|
511
|
-
super(name, ::
|
511
|
+
super(name, ::Integer, default, strict, &validator_proc)
|
512
512
|
end
|
513
513
|
|
514
514
|
def coerce(value)
|
515
|
-
return value if value.is_a?(::
|
515
|
+
return value if value.is_a?(::Integer)
|
516
516
|
Util::TimeValue.from_value(value).to_nanos
|
517
517
|
end
|
518
518
|
end
|
data/lib/logstash/util.rb
CHANGED
@@ -9,6 +9,8 @@ module LogStash::Util
|
|
9
9
|
|
10
10
|
PR_SET_NAME = 15
|
11
11
|
def self.set_thread_name(name)
|
12
|
+
previous_name = Java::java.lang.Thread.currentThread.getName() if block_given?
|
13
|
+
|
12
14
|
if RUBY_ENGINE == "jruby"
|
13
15
|
# Keep java and ruby thread names in sync.
|
14
16
|
Java::java.lang.Thread.currentThread.setName(name)
|
@@ -21,6 +23,14 @@ module LogStash::Util
|
|
21
23
|
# since MRI 1.9, JRuby, and Rubinius use system threads for this.
|
22
24
|
LibC.prctl(PR_SET_NAME, name[0..16], 0, 0, 0)
|
23
25
|
end
|
26
|
+
|
27
|
+
if block_given?
|
28
|
+
begin
|
29
|
+
yield
|
30
|
+
ensure
|
31
|
+
set_thread_name(previous_name)
|
32
|
+
end
|
33
|
+
end
|
24
34
|
end # def set_thread_name
|
25
35
|
|
26
36
|
def self.set_thread_plugin(plugin)
|
@@ -191,7 +201,7 @@ module LogStash::Util
|
|
191
201
|
o.inject({}) {|h, (k,v)| h[k] = deep_clone(v); h }
|
192
202
|
when Array
|
193
203
|
o.map {|v| deep_clone(v) }
|
194
|
-
when
|
204
|
+
when Integer, Symbol, IO, TrueClass, FalseClass, NilClass
|
195
205
|
o
|
196
206
|
when LogStash::Codecs::Base
|
197
207
|
o.clone
|
@@ -7,7 +7,7 @@ module LogStash::Util::DurationFormatter
|
|
7
7
|
# a format that a human can understand. This is currently used by
|
8
8
|
# the API.
|
9
9
|
#
|
10
|
-
# @param [
|
10
|
+
# @param [Integer] Duration in milliseconds
|
11
11
|
# @return [String] Duration in human format
|
12
12
|
def self.human_format(duration)
|
13
13
|
ChronicDuration.output(duration / 1000, CHRONIC_OPTIONS)
|
@@ -419,6 +419,7 @@ describe LogStash::Config::Mixin do
|
|
419
419
|
end
|
420
420
|
|
421
421
|
it "should use the value in the variable" do
|
422
|
+
skip("This test fails on Windows, tracked in https://github.com/elastic/logstash/issues/10454")
|
422
423
|
expect(subject.oneString).to(be == "fancy")
|
423
424
|
expect(subject.oneBoolean).to(be_truthy)
|
424
425
|
expect(subject.oneArray).to(be == [ "first array value", "fancy" ])
|
data/spec/logstash/event_spec.rb
CHANGED
@@ -141,10 +141,10 @@ describe LogStash::Event do
|
|
141
141
|
expect(e.get("foo")).to eq(BigDecimal.new(1))
|
142
142
|
end
|
143
143
|
|
144
|
-
it "should set
|
144
|
+
it "should set RubyInteger" do
|
145
145
|
e = LogStash::Event.new()
|
146
146
|
e.set("[foo]", -9223372036854776000)
|
147
|
-
expect(e.get("foo")).to be_kind_of(
|
147
|
+
expect(e.get("foo")).to be_kind_of(Integer)
|
148
148
|
expect(e.get("foo")).to eq(-9223372036854776000)
|
149
149
|
end
|
150
150
|
|
@@ -309,4 +309,18 @@ describe LogStash::Filters::NOOP do
|
|
309
309
|
reject { subject }.include?("go")
|
310
310
|
end
|
311
311
|
end
|
312
|
+
|
313
|
+
describe "when metrics are disabled" do
|
314
|
+
describe "An error should not be raised, and the event should be processed" do
|
315
|
+
config <<-CONFIG
|
316
|
+
filter {
|
317
|
+
noop { enable_metric => false }
|
318
|
+
}
|
319
|
+
CONFIG
|
320
|
+
|
321
|
+
sample_one("type" => "noop", "tags" => ["go"]) do
|
322
|
+
expect(subject.get("tags")).to eq(["go"])
|
323
|
+
end
|
324
|
+
end
|
325
|
+
end
|
312
326
|
end
|
@@ -82,7 +82,7 @@ describe LogStash::Event do
|
|
82
82
|
expect(event.get("reference_test")).not_to eq(data)
|
83
83
|
end
|
84
84
|
|
85
|
-
it "should not return
|
85
|
+
it "should not return an Integer reference" do
|
86
86
|
data = 1
|
87
87
|
event = LogStash::Event.new({ "reference" => data })
|
88
88
|
LogStash::Util::Decorators.add_fields({"reference_test" => "%{reference}"}, event, "dummy-plugin")
|
@@ -98,11 +98,12 @@ describe LogStash::Event do
|
|
98
98
|
expect(subject.sprintf("bonjour")).to eq("bonjour")
|
99
99
|
end
|
100
100
|
|
101
|
-
it "should raise error
|
101
|
+
it "should not raise error and should format as empty string when @timestamp field is missing" do
|
102
102
|
str = "hello-%{+%s}"
|
103
103
|
subj = subject.clone
|
104
104
|
subj.remove("[@timestamp]")
|
105
|
-
expect{ subj.sprintf(str) }.
|
105
|
+
expect{ subj.sprintf(str) }.not_to raise_error(LogStash::Error)
|
106
|
+
expect(subj.sprintf(str)).to eq("hello-")
|
106
107
|
end
|
107
108
|
|
108
109
|
it "should report a time with %{+format} syntax", :if => RUBY_ENGINE == "jruby" do
|
@@ -115,11 +116,11 @@ describe LogStash::Event do
|
|
115
116
|
expect(subject.sprintf("foo %{+YYYY-MM-dd} %{type}")).to eq("foo 2013-01-01 sprintf")
|
116
117
|
end
|
117
118
|
|
118
|
-
it "should raise error with %{+format} syntax when @timestamp field is missing", :if => RUBY_ENGINE == "jruby" do
|
119
|
+
it "should not raise error with %{+format} syntax when @timestamp field is missing", :if => RUBY_ENGINE == "jruby" do
|
119
120
|
str = "logstash-%{+YYYY}"
|
120
121
|
subj = subject.clone
|
121
122
|
subj.remove("[@timestamp]")
|
122
|
-
expect{ subj.sprintf(str) }.
|
123
|
+
expect{ subj.sprintf(str) }.not_to raise_error(LogStash::Error)
|
123
124
|
end
|
124
125
|
|
125
126
|
it "should report fields with %{field} syntax" do
|
@@ -47,7 +47,7 @@ describe LogStash::QueueFactory do
|
|
47
47
|
let(:queue_path) { ::File.join(settings.get("path.queue"), pipeline_id) }
|
48
48
|
|
49
49
|
after :each do
|
50
|
-
FileUtils.
|
50
|
+
FileUtils.rm_rf(queue_path)
|
51
51
|
end
|
52
52
|
|
53
53
|
it "creates a queue directory based on the pipeline id" do
|
@@ -27,7 +27,7 @@ describe LogStash::Setting::ArrayCoercible do
|
|
27
27
|
|
28
28
|
describe "initialization" do
|
29
29
|
subject { described_class }
|
30
|
-
let(:element_class) {
|
30
|
+
let(:element_class) { Integer }
|
31
31
|
context "when given values of incorrect element class" do
|
32
32
|
let(:value) { "test" }
|
33
33
|
|
@@ -35,8 +35,8 @@ describe LogStash::Setting::Bytes do
|
|
35
35
|
|
36
36
|
before { subject.set(text) }
|
37
37
|
|
38
|
-
it "should coerce it to
|
39
|
-
expect(subject.value).to be_a(
|
38
|
+
it "should coerce it to an Integer" do
|
39
|
+
expect(subject.value).to be_a(::Integer)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -51,7 +51,7 @@ describe TimeValue do
|
|
51
51
|
a = TimeValue.from_value(32)
|
52
52
|
fail "should not parse"
|
53
53
|
rescue ArgumentError => e
|
54
|
-
expect(e.message).to eq("value is not a string: 32 [
|
54
|
+
expect(e.message).to eq("value is not a string: 32 [Integer]")
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
data/versions-gem-copy.yml
CHANGED
@@ -1,26 +1,26 @@
|
|
1
1
|
---
|
2
|
-
logstash: 6.
|
3
|
-
logstash-core: 6.
|
2
|
+
logstash: 6.7.0
|
3
|
+
logstash-core: 6.7.0
|
4
4
|
logstash-core-plugin-api: 2.1.16
|
5
5
|
|
6
6
|
# jruby must reference a *released* version of jruby which can be downloaded from the official download url
|
7
7
|
# *and* for which jars artifacts are published for compile-time
|
8
8
|
jruby:
|
9
|
-
version: 9.
|
10
|
-
sha1:
|
9
|
+
version: 9.2.6.0
|
10
|
+
sha1: 3c13ec3966f6cc44966f3978c96325b9e56174f1
|
11
11
|
|
12
12
|
# jruby-runtime-override, if specified, will override the jruby version installed in vendor/jruby for logstash runtime only,
|
13
13
|
# not for the compile-time jars
|
14
14
|
#
|
15
15
|
#jruby-runtime-override:
|
16
|
-
# url: http://ci.jruby.org/snapshots/previous/jruby-bin-9.
|
17
|
-
# version: 9.
|
16
|
+
# url: http://ci.jruby.org/snapshots/previous/jruby-bin-9.2.0.0-SNAPSHOT.tar.gz
|
17
|
+
# version: 9.2.0.0-SNAPSHOT
|
18
18
|
# sha1: IGNORE
|
19
19
|
|
20
20
|
# Note: this file is copied to the root of logstash-core because its gemspec needs it when
|
21
21
|
# bundler evaluates the gemspec via bin/logstash
|
22
22
|
# Ensure Jackson version here is kept in sync with version used by jrjackson gem
|
23
|
-
jrjackson: 0.4.
|
24
|
-
jackson: 2.9.
|
23
|
+
jrjackson: 0.4.7
|
24
|
+
jackson: 2.9.8
|
25
25
|
|
26
26
|
# This is a copy the project level versions.yml into this gem's root and it is created when the gemspec is evaluated.
|
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: 6.
|
4
|
+
version: 6.7.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -17,8 +17,8 @@ dependencies:
|
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: 0.10.1
|
19
19
|
name: pry
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
@@ -31,8 +31,8 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.0.19
|
33
33
|
name: stud
|
34
|
-
prerelease: false
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
@@ -45,8 +45,8 @@ dependencies:
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 0.6.5
|
47
47
|
name: clamp
|
48
|
-
prerelease: false
|
49
48
|
type: :runtime
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
@@ -59,8 +59,8 @@ dependencies:
|
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: 0.0.4
|
61
61
|
name: filesize
|
62
|
-
prerelease: false
|
63
62
|
type: :runtime
|
63
|
+
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
@@ -73,8 +73,8 @@ dependencies:
|
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 0.8.3
|
75
75
|
name: gems
|
76
|
-
prerelease: false
|
77
76
|
type: :runtime
|
77
|
+
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
@@ -90,8 +90,8 @@ dependencies:
|
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: 1.0.5
|
92
92
|
name: concurrent-ruby
|
93
|
-
prerelease: false
|
94
93
|
type: :runtime
|
94
|
+
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
97
|
- - "~>"
|
@@ -110,8 +110,8 @@ dependencies:
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: 1.6.11
|
112
112
|
name: rack
|
113
|
-
prerelease: false
|
114
113
|
type: :runtime
|
114
|
+
prerelease: false
|
115
115
|
version_requirements: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - "~>"
|
@@ -130,8 +130,8 @@ dependencies:
|
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: 1.4.6
|
132
132
|
name: sinatra
|
133
|
-
prerelease: false
|
134
133
|
type: :runtime
|
134
|
+
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
@@ -147,8 +147,8 @@ dependencies:
|
|
147
147
|
- !ruby/object:Gem::Version
|
148
148
|
version: '2.16'
|
149
149
|
name: puma
|
150
|
-
prerelease: false
|
151
150
|
type: :runtime
|
151
|
+
prerelease: false
|
152
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
153
|
requirements:
|
154
154
|
- - "~>"
|
@@ -161,8 +161,8 @@ dependencies:
|
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: 0.9.20
|
163
163
|
name: jruby-openssl
|
164
|
-
prerelease: false
|
165
164
|
type: :runtime
|
165
|
+
prerelease: false
|
166
166
|
version_requirements: !ruby/object:Gem::Requirement
|
167
167
|
requirements:
|
168
168
|
- - ">="
|
@@ -175,8 +175,8 @@ dependencies:
|
|
175
175
|
- !ruby/object:Gem::Version
|
176
176
|
version: 0.10.6
|
177
177
|
name: chronic_duration
|
178
|
-
prerelease: false
|
179
178
|
type: :runtime
|
179
|
+
prerelease: false
|
180
180
|
version_requirements: !ruby/object:Gem::Requirement
|
181
181
|
requirements:
|
182
182
|
- - '='
|
@@ -189,8 +189,8 @@ dependencies:
|
|
189
189
|
- !ruby/object:Gem::Version
|
190
190
|
version: 1.5.0
|
191
191
|
name: treetop
|
192
|
-
prerelease: false
|
193
192
|
type: :runtime
|
193
|
+
prerelease: false
|
194
194
|
version_requirements: !ruby/object:Gem::Requirement
|
195
195
|
requirements:
|
196
196
|
- - "<"
|
@@ -203,8 +203,8 @@ dependencies:
|
|
203
203
|
- !ruby/object:Gem::Version
|
204
204
|
version: 0.6.9
|
205
205
|
name: i18n
|
206
|
-
prerelease: false
|
207
206
|
type: :runtime
|
207
|
+
prerelease: false
|
208
208
|
version_requirements: !ruby/object:Gem::Requirement
|
209
209
|
requirements:
|
210
210
|
- - '='
|
@@ -217,8 +217,8 @@ dependencies:
|
|
217
217
|
- !ruby/object:Gem::Version
|
218
218
|
version: 0.6.1
|
219
219
|
name: minitar
|
220
|
-
prerelease: false
|
221
220
|
type: :runtime
|
221
|
+
prerelease: false
|
222
222
|
version_requirements: !ruby/object:Gem::Requirement
|
223
223
|
requirements:
|
224
224
|
- - "~>"
|
@@ -231,8 +231,8 @@ dependencies:
|
|
231
231
|
- !ruby/object:Gem::Version
|
232
232
|
version: 1.2.1
|
233
233
|
name: rubyzip
|
234
|
-
prerelease: false
|
235
234
|
type: :runtime
|
235
|
+
prerelease: false
|
236
236
|
version_requirements: !ruby/object:Gem::Requirement
|
237
237
|
requirements:
|
238
238
|
- - "~>"
|
@@ -245,8 +245,8 @@ dependencies:
|
|
245
245
|
- !ruby/object:Gem::Version
|
246
246
|
version: 0.3.5
|
247
247
|
name: thread_safe
|
248
|
-
prerelease: false
|
249
248
|
type: :runtime
|
249
|
+
prerelease: false
|
250
250
|
version_requirements: !ruby/object:Gem::Requirement
|
251
251
|
requirements:
|
252
252
|
- - "~>"
|
@@ -257,15 +257,15 @@ dependencies:
|
|
257
257
|
requirements:
|
258
258
|
- - '='
|
259
259
|
- !ruby/object:Gem::Version
|
260
|
-
version: 0.4.
|
260
|
+
version: 0.4.7
|
261
261
|
name: jrjackson
|
262
|
-
prerelease: false
|
263
262
|
type: :runtime
|
263
|
+
prerelease: false
|
264
264
|
version_requirements: !ruby/object:Gem::Requirement
|
265
265
|
requirements:
|
266
266
|
- - '='
|
267
267
|
- !ruby/object:Gem::Version
|
268
|
-
version: 0.4.
|
268
|
+
version: 0.4.7
|
269
269
|
- !ruby/object:Gem::Dependency
|
270
270
|
requirement: !ruby/object:Gem::Requirement
|
271
271
|
requirements:
|
@@ -276,8 +276,8 @@ dependencies:
|
|
276
276
|
- !ruby/object:Gem::Version
|
277
277
|
version: 5.0.4
|
278
278
|
name: elasticsearch
|
279
|
-
prerelease: false
|
280
279
|
type: :runtime
|
280
|
+
prerelease: false
|
281
281
|
version_requirements: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
283
|
- - "~>"
|
@@ -296,8 +296,8 @@ dependencies:
|
|
296
296
|
- !ruby/object:Gem::Version
|
297
297
|
version: 1.0.0
|
298
298
|
name: manticore
|
299
|
-
prerelease: false
|
300
299
|
type: :runtime
|
300
|
+
prerelease: false
|
301
301
|
version_requirements: !ruby/object:Gem::Requirement
|
302
302
|
requirements:
|
303
303
|
- - ">="
|
@@ -608,7 +608,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
608
608
|
version: '0'
|
609
609
|
requirements: []
|
610
610
|
rubyforge_project:
|
611
|
-
rubygems_version: 2.6
|
611
|
+
rubygems_version: 2.7.6
|
612
612
|
signing_key:
|
613
613
|
specification_version: 4
|
614
614
|
summary: logstash-core - The core components of logstash
|