logstash-core 2.3.2.snapshot1-java → 2.3.3-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.
- checksums.yaml +4 -4
- data/lib/logstash-core/version.rb +1 -1
- data/lib/logstash/agent.rb +30 -22
- data/lib/logstash/config/config_ast.rb +30 -17
- data/lib/logstash/config/loader.rb +2 -2
- data/lib/logstash/version.rb +1 -1
- data/locales/en.yml +6 -3
- data/logstash-core.gemspec +1 -1
- data/spec/logstash/config/config_ast_spec.rb +47 -2
- data/spec/logstash/pipeline_spec.rb +16 -0
- data/spec/static/i18n_spec.rb +25 -0
- metadata +30 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e329ae1370cbd5fd3034dbecef0cd76d619913d0
|
4
|
+
data.tar.gz: 54a614916667e6ee1fb5136dc729ab91db8d4620
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae4bb1cec6d0fe5e6cd3b2fd3c2f8ec65a10a0bc897a41d4c2ba55ed65ff68dcf777a5f450d90809135b714f85cd0dbbbac6ee66487446659e738553a5d6da5e
|
7
|
+
data.tar.gz: 1fcbd99f63685ab23db03b2da128273f5c007bf98a59a81d799e9a4421065ac8d2932a147f2a222e3ad10dd2e4d79fe08416210f3ef81808d351a4022dad2032
|
data/lib/logstash/agent.rb
CHANGED
@@ -59,7 +59,7 @@ class LogStash::Agent < Clamp::Command
|
|
59
59
|
option "--debug", :flag, I18n.t("logstash.agent.flag.debug")
|
60
60
|
|
61
61
|
option ["--debug-config"], :flag,
|
62
|
-
I18n.t("logstash.
|
62
|
+
I18n.t("logstash.agent.flag.debug_config"),
|
63
63
|
:attribute_name => :debug_config, :default => false
|
64
64
|
|
65
65
|
option ["-V", "--version"], :flag,
|
@@ -376,22 +376,6 @@ class LogStash::Agent < Clamp::Command
|
|
376
376
|
end
|
377
377
|
end
|
378
378
|
|
379
|
-
def create_pipeline(settings)
|
380
|
-
begin
|
381
|
-
config = fetch_config(settings)
|
382
|
-
rescue => e
|
383
|
-
@logger.error("failed to fetch pipeline configuration", :message => e.message)
|
384
|
-
return
|
385
|
-
end
|
386
|
-
|
387
|
-
begin
|
388
|
-
LogStash::Pipeline.new(config, settings)
|
389
|
-
rescue => e
|
390
|
-
@logger.error("fetched an invalid config", :config => config, :reason => e.message)
|
391
|
-
return
|
392
|
-
end
|
393
|
-
end
|
394
|
-
|
395
379
|
def start_pipelines
|
396
380
|
@pipelines.each { |id, _| start_pipeline(id) }
|
397
381
|
end
|
@@ -429,6 +413,25 @@ class LogStash::Agent < Clamp::Command
|
|
429
413
|
start_pipeline(pipeline_id)
|
430
414
|
end
|
431
415
|
|
416
|
+
def create_pipeline(settings, config=nil)
|
417
|
+
|
418
|
+
if config.nil?
|
419
|
+
begin
|
420
|
+
config = fetch_config(settings)
|
421
|
+
rescue => e
|
422
|
+
@logger.error("failed to fetch pipeline configuration", :message => e.message)
|
423
|
+
return
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
427
|
+
begin
|
428
|
+
LogStash::Pipeline.new(config, settings)
|
429
|
+
rescue => e
|
430
|
+
@logger.error("fetched an invalid config", :config => config, :reason => e.message)
|
431
|
+
return
|
432
|
+
end
|
433
|
+
end
|
434
|
+
|
432
435
|
def clean_state?
|
433
436
|
@pipelines.empty?
|
434
437
|
end
|
@@ -437,16 +440,21 @@ class LogStash::Agent < Clamp::Command
|
|
437
440
|
# wrapped in @upgrade_mutex in the parent call `reload_state!`
|
438
441
|
def reload_pipeline!(id)
|
439
442
|
old_pipeline = @pipelines[id]
|
440
|
-
|
443
|
+
new_config = fetch_config(old_pipeline.original_settings)
|
444
|
+
if old_pipeline.config_str == new_config
|
445
|
+
@logger.debug("no configuration change for pipeline",
|
446
|
+
:pipeline => id, :config => new_config)
|
447
|
+
return
|
448
|
+
end
|
449
|
+
|
450
|
+
new_pipeline = create_pipeline(old_pipeline.original_settings, new_config)
|
441
451
|
return if new_pipeline.nil?
|
442
452
|
|
443
|
-
if
|
444
|
-
@logger.debug("no configuration change for pipeline",
|
445
|
-
:pipeline => id, :config => old_pipeline.config_str)
|
446
|
-
elsif new_pipeline.non_reloadable_plugins.any?
|
453
|
+
if new_pipeline.non_reloadable_plugins.any?
|
447
454
|
@logger.error(I18n.t("logstash.agent.non_reloadable_config_reload"),
|
448
455
|
:pipeline_id => id,
|
449
456
|
:plugins => new_pipeline.non_reloadable_plugins.map(&:class))
|
457
|
+
return
|
450
458
|
else
|
451
459
|
@logger.log("fetched new config for pipeline. upgrading..",
|
452
460
|
:pipeline => id, :config => new_pipeline.config_str)
|
@@ -76,6 +76,14 @@ module LogStash; module Config; module AST
|
|
76
76
|
@defered_conditionals_index = val
|
77
77
|
end
|
78
78
|
|
79
|
+
def self.plugin_instance_index
|
80
|
+
@plugin_instance_index
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.plugin_instance_index=(val)
|
84
|
+
@plugin_instance_index = val
|
85
|
+
end
|
86
|
+
|
79
87
|
class Node < Treetop::Runtime::SyntaxNode
|
80
88
|
def text_value_for_comments
|
81
89
|
text_value.gsub(/[\r\n]/, " ")
|
@@ -86,6 +94,7 @@ module LogStash; module Config; module AST
|
|
86
94
|
def compile
|
87
95
|
LogStash::Config::AST.defered_conditionals = []
|
88
96
|
LogStash::Config::AST.defered_conditionals_index = 0
|
97
|
+
LogStash::Config::AST.plugin_instance_index = 0
|
89
98
|
code = []
|
90
99
|
|
91
100
|
code << <<-CODE
|
@@ -94,6 +103,7 @@ module LogStash; module Config; module AST
|
|
94
103
|
@outputs = []
|
95
104
|
@periodic_flushers = []
|
96
105
|
@shutdown_flushers = []
|
106
|
+
@generated_objects = {}
|
97
107
|
CODE
|
98
108
|
|
99
109
|
sections = recursive_select(LogStash::Config::AST::PluginSection)
|
@@ -137,7 +147,9 @@ module LogStash; module Config; module AST
|
|
137
147
|
class PluginSection < Node
|
138
148
|
# Global plugin numbering for the janky instance variable naming we use
|
139
149
|
# like @filter_<name>_1
|
140
|
-
|
150
|
+
def initialize(*args)
|
151
|
+
super(*args)
|
152
|
+
end
|
141
153
|
|
142
154
|
# Generate ruby code to initialize all the plugins.
|
143
155
|
def compile_initializer
|
@@ -147,31 +159,31 @@ module LogStash; module Config; module AST
|
|
147
159
|
|
148
160
|
|
149
161
|
code << <<-CODE
|
150
|
-
|
151
|
-
@#{plugin.plugin_type}s <<
|
162
|
+
@generated_objects[:#{name}] = #{plugin.compile_initializer}
|
163
|
+
@#{plugin.plugin_type}s << @generated_objects[:#{name}]
|
152
164
|
CODE
|
153
165
|
|
154
166
|
# The flush method for this filter.
|
155
167
|
if plugin.plugin_type == "filter"
|
156
168
|
|
157
169
|
code << <<-CODE
|
158
|
-
|
159
|
-
@logger.debug? && @logger.debug(\"Flushing\", :plugin =>
|
170
|
+
@generated_objects[:#{name}_flush] = lambda do |options, &block|
|
171
|
+
@logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}])
|
160
172
|
|
161
|
-
events =
|
173
|
+
events = @generated_objects[:#{name}].flush(options)
|
162
174
|
|
163
175
|
return if events.nil? || events.empty?
|
164
176
|
|
165
|
-
@logger.debug? && @logger.debug(\"Flushing\", :plugin =>
|
177
|
+
@logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}], :events => events)
|
166
178
|
|
167
179
|
#{plugin.compile_starting_here.gsub(/^/, " ")}
|
168
180
|
|
169
181
|
events.each{|e| block.call(e)}
|
170
182
|
end
|
171
183
|
|
172
|
-
if
|
173
|
-
@periodic_flushers <<
|
174
|
-
@shutdown_flushers <<
|
184
|
+
if @generated_objects[:#{name}].respond_to?(:flush)
|
185
|
+
@periodic_flushers << @generated_objects[:#{name}_flush] if @generated_objects[:#{name}].periodic_flush
|
186
|
+
@shutdown_flushers << @generated_objects[:#{name}_flush]
|
175
187
|
end
|
176
188
|
CODE
|
177
189
|
|
@@ -192,9 +204,10 @@ module LogStash; module Config; module AST
|
|
192
204
|
|
193
205
|
plugins.each do |plugin|
|
194
206
|
# Unique number for every plugin.
|
195
|
-
|
207
|
+
LogStash::Config::AST.plugin_instance_index += 1
|
196
208
|
# store things as ivars, like @filter_grok_3
|
197
|
-
var = "
|
209
|
+
var = :"#{plugin.plugin_type}_#{plugin.plugin_name}_#{LogStash::Config::AST.plugin_instance_index}"
|
210
|
+
# puts("var=#{var.inspect}")
|
198
211
|
@variables[plugin] = var
|
199
212
|
end
|
200
213
|
return @variables
|
@@ -236,13 +249,13 @@ module LogStash; module Config; module AST
|
|
236
249
|
def compile
|
237
250
|
case plugin_type
|
238
251
|
when "input"
|
239
|
-
return "start_input(
|
252
|
+
return "start_input(@generated_objects[:#{variable_name}])"
|
240
253
|
when "filter"
|
241
254
|
return <<-CODE
|
242
|
-
events =
|
255
|
+
events = @generated_objects[:#{variable_name}].multi_filter(events)
|
243
256
|
CODE
|
244
257
|
when "output"
|
245
|
-
return "targeted_outputs <<
|
258
|
+
return "targeted_outputs << @generated_objects[:#{variable_name}]\n"
|
246
259
|
when "codec"
|
247
260
|
settings = attributes.recursive_select(Attribute).collect(&:compile).reject(&:empty?)
|
248
261
|
attributes_code = "LogStash::Util.hash_merge_many(#{settings.map { |c| "{ #{c} }" }.join(", ")})"
|
@@ -391,7 +404,7 @@ module LogStash; module Config; module AST
|
|
391
404
|
if type == "filter"
|
392
405
|
i = LogStash::Config::AST.defered_conditionals_index += 1
|
393
406
|
source = <<-CODE
|
394
|
-
|
407
|
+
@generated_objects[:cond_func_#{i}] = lambda do |input_events|
|
395
408
|
result = []
|
396
409
|
input_events.each do |event|
|
397
410
|
events = [event]
|
@@ -405,7 +418,7 @@ module LogStash; module Config; module AST
|
|
405
418
|
LogStash::Config::AST.defered_conditionals << source
|
406
419
|
|
407
420
|
<<-CODE
|
408
|
-
events = cond_func_#{i}(events)
|
421
|
+
events = @generated_objects[:cond_func_#{i}].call(events)
|
409
422
|
CODE
|
410
423
|
else # Output
|
411
424
|
<<-CODE
|
@@ -55,7 +55,7 @@ module LogStash; module Config; class Loader
|
|
55
55
|
path = ::File.join(path, "*") if ::File.directory?(path)
|
56
56
|
|
57
57
|
if Dir.glob(path).length == 0
|
58
|
-
fail(I18n.t("logstash.
|
58
|
+
fail(I18n.t("logstash.agent.configuration.file-not-found", :path => path))
|
59
59
|
end
|
60
60
|
|
61
61
|
config = ""
|
@@ -91,7 +91,7 @@ module LogStash; module Config; class Loader
|
|
91
91
|
begin
|
92
92
|
Net::HTTP.get(uri) + "\n"
|
93
93
|
rescue Exception => e
|
94
|
-
fail(I18n.t("logstash.
|
94
|
+
fail(I18n.t("logstash.agent.configuration.fetch-failed", :path => uri.to_s, :message => e.message))
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end end end
|
data/lib/logstash/version.rb
CHANGED
data/locales/en.yml
CHANGED
@@ -78,8 +78,7 @@ en:
|
|
78
78
|
non_reloadable_config_reload: >-
|
79
79
|
Unable to reload configuration because it does not support dynamic reloading
|
80
80
|
non_reloadable_config_register: |-
|
81
|
-
Logstash
|
82
|
-
dynamic reloading and -r or --auto-reload flag was enabled
|
81
|
+
Logstash is not able to start since configuration auto reloading was enabled but the configuration contains plugins that don't support it. Quitting...
|
83
82
|
configtest-flag-information: |-
|
84
83
|
You may be interested in the '--configtest' flag which you can
|
85
84
|
use to validate logstash's configuration before you choose
|
@@ -221,4 +220,8 @@ en:
|
|
221
220
|
Force logstash to exit during shutdown even
|
222
221
|
if there are still inflight events in memory.
|
223
222
|
By default, logstash will refuse to quit until all
|
224
|
-
received events have been pushed to the outputs.
|
223
|
+
received events have been pushed to the outputs.
|
224
|
+
debug_config: |+
|
225
|
+
Print the compiled config ruby code out as a debug log (you must also have --debug enabled).
|
226
|
+
WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result
|
227
|
+
in plaintext passwords appearing in your logs!
|
data/logstash-core.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
gem.version = LOGSTASH_CORE_VERSION
|
19
19
|
|
20
|
-
gem.add_runtime_dependency "logstash-core-event", "2.3.
|
20
|
+
gem.add_runtime_dependency "logstash-core-event", "2.3.3"
|
21
21
|
|
22
22
|
gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license)
|
23
23
|
gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license)
|
@@ -144,6 +144,49 @@ describe LogStashConfigParser do
|
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
+
context "when using two plugin sections of the same type" do
|
148
|
+
let(:pipeline_klass) do
|
149
|
+
Class.new do
|
150
|
+
def initialize(config)
|
151
|
+
grammar = LogStashConfigParser.new
|
152
|
+
@config = grammar.parse(config)
|
153
|
+
@code = @config.compile
|
154
|
+
eval(@code)
|
155
|
+
end
|
156
|
+
def plugin(*args);end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
context "(filters)" do
|
160
|
+
let(:config_string) {
|
161
|
+
"input { generator { } }
|
162
|
+
filter { filter1 { } }
|
163
|
+
filter { filter1 { } }
|
164
|
+
output { output1 { } }"
|
165
|
+
}
|
166
|
+
|
167
|
+
|
168
|
+
it "should create a pipeline with both sections" do
|
169
|
+
generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects")
|
170
|
+
filters = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^filter.+?_\d+$/) }
|
171
|
+
expect(filters.size).to eq(2)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
context "(filters)" do
|
176
|
+
let(:config_string) {
|
177
|
+
"input { generator { } }
|
178
|
+
output { output1 { } }
|
179
|
+
output { output1 { } }"
|
180
|
+
}
|
181
|
+
|
182
|
+
|
183
|
+
it "should create a pipeline with both sections" do
|
184
|
+
generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects")
|
185
|
+
outputs = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^output.+?_\d+$/) }
|
186
|
+
expect(outputs.size).to eq(2)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
147
190
|
context "when creating two instances of the same configuration" do
|
148
191
|
|
149
192
|
let(:config_string) {
|
@@ -169,10 +212,12 @@ describe LogStashConfigParser do
|
|
169
212
|
end
|
170
213
|
|
171
214
|
describe "generated conditional functionals" do
|
172
|
-
it "should be
|
215
|
+
it "should be created per instance" do
|
173
216
|
instance_1 = pipeline_klass.new(config_string)
|
174
217
|
instance_2 = pipeline_klass.new(config_string)
|
175
|
-
|
218
|
+
generated_method_1 = instance_1.instance_variable_get("@generated_objects")[:cond_func_1]
|
219
|
+
generated_method_2 = instance_2.instance_variable_get("@generated_objects")[:cond_func_1]
|
220
|
+
expect(generated_method_1).to_not be(generated_method_2)
|
176
221
|
end
|
177
222
|
end
|
178
223
|
end
|
@@ -452,4 +452,20 @@ describe LogStash::Pipeline do
|
|
452
452
|
expect(pipeline1.filter_func(LogStash::Event.new)).not_to include(nil)
|
453
453
|
end
|
454
454
|
end
|
455
|
+
|
456
|
+
context "Pipeline object" do
|
457
|
+
before do
|
458
|
+
allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator)
|
459
|
+
allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec)
|
460
|
+
allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter)
|
461
|
+
allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput)
|
462
|
+
end
|
463
|
+
|
464
|
+
let(:pipeline1) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") }
|
465
|
+
let(:pipeline2) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") }
|
466
|
+
|
467
|
+
it "should not add ivars" do
|
468
|
+
expect(pipeline1.instance_variables).to eq(pipeline2.instance_variables)
|
469
|
+
end
|
470
|
+
end
|
455
471
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "spec_helper"
|
3
|
+
require "i18n"
|
4
|
+
|
5
|
+
I18N_T_REGEX = Regexp.new('I18n.t.+?"(.+?)"')
|
6
|
+
|
7
|
+
describe I18n do
|
8
|
+
context "when using en.yml" do
|
9
|
+
glob_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-*", "lib", "**", "*.rb")
|
10
|
+
|
11
|
+
Dir.glob(glob_path).each do |file_name|
|
12
|
+
|
13
|
+
context "in file \"#{file_name}\"" do
|
14
|
+
File.foreach(file_name) do |line|
|
15
|
+
next unless (match = line.match(I18N_T_REGEX))
|
16
|
+
line = $INPUT_LINE_NUMBER
|
17
|
+
key = match[1]
|
18
|
+
it "in line #{line} the \"#{key}\" key should exist" do
|
19
|
+
expect(I18n.exists?(key)).to be_truthy
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
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: 2.3.
|
4
|
+
version: 2.3.3
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-14 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: 2.3.
|
18
|
+
version: 2.3.3
|
19
19
|
name: logstash-core-event
|
20
20
|
prerelease: false
|
21
21
|
type: :runtime
|
@@ -23,11 +23,11 @@ dependencies:
|
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.3.
|
26
|
+
version: 2.3.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
|
-
- - ~>
|
30
|
+
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.8.0
|
33
33
|
name: cabin
|
@@ -35,13 +35,13 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.8.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - ~>
|
44
|
+
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 0.10.1
|
47
47
|
name: pry
|
@@ -49,13 +49,13 @@ dependencies:
|
|
49
49
|
type: :runtime
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.10.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - ~>
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: 0.0.19
|
61
61
|
name: stud
|
@@ -63,13 +63,13 @@ dependencies:
|
|
63
63
|
type: :runtime
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.0.19
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- - ~>
|
72
|
+
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 0.6.5
|
75
75
|
name: clamp
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
type: :runtime
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.6.5
|
83
83
|
- !ruby/object:Gem::Dependency
|
@@ -97,7 +97,7 @@ dependencies:
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- - ~>
|
100
|
+
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: 0.8.3
|
103
103
|
name: gems
|
@@ -105,7 +105,7 @@ dependencies:
|
|
105
105
|
type: :runtime
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - ~>
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 0.8.3
|
111
111
|
- !ruby/object:Gem::Dependency
|
@@ -139,7 +139,7 @@ dependencies:
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- - <
|
142
|
+
- - "<"
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: 1.5.0
|
145
145
|
name: treetop
|
@@ -147,7 +147,7 @@ dependencies:
|
|
147
147
|
type: :runtime
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - <
|
150
|
+
- - "<"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 1.5.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
@@ -167,7 +167,7 @@ dependencies:
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
|
-
- - ~>
|
170
|
+
- - "~>"
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: 0.5.4
|
173
173
|
name: minitar
|
@@ -175,13 +175,13 @@ dependencies:
|
|
175
175
|
type: :runtime
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - ~>
|
178
|
+
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: 0.5.4
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
|
-
- - ~>
|
184
|
+
- - "~>"
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: 1.1.7
|
187
187
|
name: rubyzip
|
@@ -189,13 +189,13 @@ dependencies:
|
|
189
189
|
type: :runtime
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - ~>
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 1.1.7
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
197
197
|
requirements:
|
198
|
-
- - ~>
|
198
|
+
- - "~>"
|
199
199
|
- !ruby/object:Gem::Version
|
200
200
|
version: 0.3.5
|
201
201
|
name: thread_safe
|
@@ -203,13 +203,13 @@ dependencies:
|
|
203
203
|
type: :runtime
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- - ~>
|
206
|
+
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: 0.3.5
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
requirement: !ruby/object:Gem::Requirement
|
211
211
|
requirements:
|
212
|
-
- - ~>
|
212
|
+
- - "~>"
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: 0.3.7
|
215
215
|
name: jrjackson
|
@@ -217,7 +217,7 @@ dependencies:
|
|
217
217
|
type: :runtime
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- - ~>
|
220
|
+
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: 0.3.7
|
223
223
|
description: The core components of logstash, the scalable log and event management tool
|
@@ -311,6 +311,7 @@ files:
|
|
311
311
|
- spec/logstash/util/worker_threads_default_printer_spec.rb
|
312
312
|
- spec/logstash/util/wrapped_synchronous_queue_spec.rb
|
313
313
|
- spec/logstash/util_spec.rb
|
314
|
+
- spec/static/i18n_spec.rb
|
314
315
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
315
316
|
licenses:
|
316
317
|
- Apache License (2.0)
|
@@ -321,17 +322,17 @@ require_paths:
|
|
321
322
|
- lib
|
322
323
|
required_ruby_version: !ruby/object:Gem::Requirement
|
323
324
|
requirements:
|
324
|
-
- -
|
325
|
+
- - ">="
|
325
326
|
- !ruby/object:Gem::Version
|
326
327
|
version: '0'
|
327
328
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
328
329
|
requirements:
|
329
|
-
- -
|
330
|
+
- - ">="
|
330
331
|
- !ruby/object:Gem::Version
|
331
|
-
version:
|
332
|
+
version: '0'
|
332
333
|
requirements: []
|
333
334
|
rubyforge_project:
|
334
|
-
rubygems_version: 2.4.
|
335
|
+
rubygems_version: 2.4.8
|
335
336
|
signing_key:
|
336
337
|
specification_version: 4
|
337
338
|
summary: logstash-core - The core components of logstash
|
@@ -365,3 +366,4 @@ test_files:
|
|
365
366
|
- spec/logstash/util/worker_threads_default_printer_spec.rb
|
366
367
|
- spec/logstash/util/wrapped_synchronous_queue_spec.rb
|
367
368
|
- spec/logstash/util_spec.rb
|
369
|
+
- spec/static/i18n_spec.rb
|