logstash-core 5.4.3-java → 5.5.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/logstash-core/logstash-core.jar +0 -0
- data/lib/logstash-core/version.rb +1 -1
- data/lib/logstash/api/commands/hot_threads_reporter.rb +2 -2
- data/lib/logstash/api/commands/node.rb +0 -1
- data/lib/logstash/api/commands/stats.rb +0 -1
- data/lib/logstash/config/mixin.rb +5 -43
- data/lib/logstash/config/modules_common.rb +71 -0
- data/lib/logstash/elasticsearch_client.rb +120 -0
- data/lib/logstash/environment.rb +14 -3
- data/lib/logstash/errors.rb +1 -0
- data/lib/logstash/execution_context.rb +11 -3
- data/lib/logstash/inputs/base.rb +2 -0
- data/lib/logstash/instrument/global_metrics.rb +13 -0
- data/lib/logstash/instrument/metric_type/mean.rb +5 -0
- data/lib/logstash/instrument/periodic_poller/jvm.rb +5 -5
- data/lib/logstash/logging/logger.rb +26 -1
- data/lib/logstash/modules/cli_parser.rb +74 -0
- data/lib/logstash/modules/elasticsearch_config.rb +22 -0
- data/lib/logstash/modules/elasticsearch_resource.rb +10 -0
- data/lib/logstash/modules/file_reader.rb +36 -0
- data/lib/logstash/modules/importer.rb +37 -0
- data/lib/logstash/modules/kibana_base_resource.rb +10 -0
- data/lib/logstash/modules/kibana_config.rb +104 -0
- data/lib/logstash/modules/kibana_resource.rb +10 -0
- data/lib/logstash/modules/logstash_config.rb +48 -0
- data/lib/logstash/modules/resource_base.rb +37 -0
- data/lib/logstash/modules/scaffold.rb +44 -0
- data/lib/logstash/namespace.rb +1 -0
- data/lib/logstash/outputs/base.rb +2 -0
- data/lib/logstash/pipeline.rb +18 -4
- data/lib/logstash/plugin.rb +1 -0
- data/lib/logstash/plugins/registry.rb +5 -0
- data/lib/logstash/runner.rb +42 -2
- data/lib/logstash/settings.rb +7 -1
- data/lib/logstash/timestamp.rb +4 -0
- data/lib/logstash/util/dead_letter_queue_manager.rb +61 -0
- data/lib/logstash/util/safe_uri.rb +130 -11
- data/lib/logstash/util/thread_dump.rb +3 -1
- data/lib/logstash/util/wrapped_acked_queue.rb +24 -6
- data/lib/logstash/util/wrapped_synchronous_queue.rb +19 -5
- data/lib/logstash/version.rb +1 -1
- data/locales/en.yml +46 -0
- data/logstash-core.gemspec +7 -2
- data/spec/{api/lib/commands/stats.rb → logstash/api/commands/stats_spec.rb} +7 -2
- data/spec/{api/lib → logstash/api}/errors_spec.rb +1 -1
- data/spec/{api/lib/api → logstash/api/modules}/logging_spec.rb +1 -10
- data/spec/{api/lib/api → logstash/api/modules}/node_plugins_spec.rb +2 -3
- data/spec/{api/lib/api → logstash/api/modules}/node_spec.rb +6 -7
- data/spec/{api/lib/api → logstash/api/modules}/node_stats_spec.rb +2 -2
- data/spec/{api/lib/api → logstash/api/modules}/plugins_spec.rb +4 -3
- data/spec/{api/lib/api → logstash/api/modules}/root_spec.rb +3 -3
- data/spec/{api/lib → logstash/api}/rack_app_spec.rb +0 -0
- data/spec/logstash/config/mixin_spec.rb +2 -2
- data/spec/logstash/execution_context_spec.rb +20 -1
- data/spec/logstash/filter_delegator_spec.rb +2 -1
- data/spec/logstash/inputs/base_spec.rb +1 -1
- data/spec/logstash/output_delegator_spec.rb +2 -1
- data/spec/logstash/outputs/base_spec.rb +1 -1
- data/spec/logstash/pipeline_dlq_commit_spec.rb +107 -0
- data/spec/logstash/pipeline_pq_file_spec.rb +1 -1
- data/spec/logstash/plugin_spec.rb +1 -1
- data/spec/logstash/plugins/registry_spec.rb +22 -5
- data/spec/logstash/runner_spec.rb +122 -19
- data/spec/logstash/settings_spec.rb +91 -0
- data/spec/logstash/timestamp_spec.rb +6 -0
- data/spec/support/helpers.rb +80 -1
- data/spec/support/matchers.rb +13 -0
- data/spec/support/shared_contexts.rb +38 -0
- data/spec/support/shared_examples.rb +1 -1
- metadata +95 -40
- data/spec/api/lib/api/support/resource_dsl_methods.rb +0 -87
- data/spec/api/spec_helper.rb +0 -111
@@ -20,6 +20,12 @@ describe LogStash::Timestamp do
|
|
20
20
|
expect(t.time.to_i).to eq(now.to_i)
|
21
21
|
end
|
22
22
|
|
23
|
+
it "should have consistent behaviour across == and .eql?" do
|
24
|
+
its_xmas = Time.utc(2015, 12, 25, 0, 0, 0)
|
25
|
+
expect(LogStash::Timestamp.new(its_xmas)).to eql(LogStash::Timestamp.new(its_xmas))
|
26
|
+
expect(LogStash::Timestamp.new(its_xmas)).to be ==(LogStash::Timestamp.new(its_xmas))
|
27
|
+
end
|
28
|
+
|
23
29
|
it "should raise exception on invalid format" do
|
24
30
|
expect{LogStash::Timestamp.new("foobar")}.to raise_error
|
25
31
|
end
|
data/spec/support/helpers.rb
CHANGED
@@ -8,9 +8,88 @@ ensure
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def clear_data_dir
|
11
|
-
|
11
|
+
if defined?(agent_settings)
|
12
|
+
data_path = agent_settings.get("path.data")
|
13
|
+
else
|
14
|
+
data_path = LogStash::SETTINGS.get("path.data")
|
15
|
+
end
|
16
|
+
|
12
17
|
Dir.foreach(data_path) do |f|
|
13
18
|
next if f == "." || f == ".." || f == ".gitkeep"
|
14
19
|
FileUtils.rm_rf(File.join(data_path, f))
|
15
20
|
end
|
16
21
|
end
|
22
|
+
|
23
|
+
def mock_settings(settings_values={})
|
24
|
+
settings = LogStash::SETTINGS.clone
|
25
|
+
|
26
|
+
settings_values.each do |key, value|
|
27
|
+
settings.set(key, value)
|
28
|
+
end
|
29
|
+
|
30
|
+
settings
|
31
|
+
end
|
32
|
+
|
33
|
+
def make_test_agent(settings=mock_settings)
|
34
|
+
::LogStash::Agent.new(settings)
|
35
|
+
end
|
36
|
+
|
37
|
+
def mock_pipeline(pipeline_id, reloadable = true, config_hash = nil)
|
38
|
+
config_string = "input { stdin { id => '#{pipeline_id}' }}"
|
39
|
+
settings = mock_settings("pipeline.id" => pipeline_id.to_s,
|
40
|
+
"config.string" => config_string,
|
41
|
+
"config.reload.automatic" => reloadable)
|
42
|
+
pipeline = LogStash::Pipeline.new(config_string, settings)
|
43
|
+
pipeline
|
44
|
+
end
|
45
|
+
|
46
|
+
def mock_pipeline_config(pipeline_id, config_string = nil, settings = {})
|
47
|
+
config_string = "input { stdin { id => '#{pipeline_id}' }}" if config_string.nil?
|
48
|
+
|
49
|
+
# This is for older tests when we already have a config
|
50
|
+
unless settings.is_a?(LogStash::Settings)
|
51
|
+
settings.merge!({ "pipeline.id" => pipeline_id.to_s })
|
52
|
+
settings = mock_settings(settings)
|
53
|
+
end
|
54
|
+
|
55
|
+
config_part = org.logstash.common.SourceWithMetadata.new("config_string", "config_string", config_string)
|
56
|
+
|
57
|
+
LogStash::Config::PipelineConfig.new(LogStash::Config::Source::Local, pipeline_id, config_part, settings)
|
58
|
+
end
|
59
|
+
|
60
|
+
def start_agent(agent)
|
61
|
+
agent_task = Stud::Task.new do
|
62
|
+
begin
|
63
|
+
agent.execute
|
64
|
+
rescue => e
|
65
|
+
raise "Start Agent exception: #{e}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
sleep(0.1) unless subject.running?
|
70
|
+
agent_task
|
71
|
+
end
|
72
|
+
|
73
|
+
def temporary_file(content, file_name = Time.now.to_i.to_s, directory = Stud::Temporary.pathname)
|
74
|
+
FileUtils.mkdir_p(directory)
|
75
|
+
target = ::File.join(directory, file_name)
|
76
|
+
|
77
|
+
File.open(target, "w+") do |f|
|
78
|
+
f.write(content)
|
79
|
+
end
|
80
|
+
target
|
81
|
+
end
|
82
|
+
|
83
|
+
RSpec::Matchers.define :ir_eql do |expected|
|
84
|
+
match do |actual|
|
85
|
+
next unless expected.java_kind_of?(org.logstash.config.ir.SourceComponent) && actual.java_kind_of?(org.logstash.config.ir.SourceComponent)
|
86
|
+
|
87
|
+
expected.sourceComponentEquals(actual)
|
88
|
+
end
|
89
|
+
|
90
|
+
failure_message do |actual|
|
91
|
+
"actual value \n#{actual.to_s}\nis not .sourceComponentEquals to the expected value: \n#{expected.to_s}\n"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
SUPPORT_DIR = Pathname.new(::File.join(::File.dirname(__FILE__), "support"))
|
data/spec/support/matchers.rb
CHANGED
@@ -28,3 +28,16 @@ RSpec::Matchers.define :implement_interface_of do |type, key, value|
|
|
28
28
|
"Expecting `#{expected}` to implements instance methods of `#{actual}`, missing methods: #{missing_methods.join(",")}"
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
32
|
+
RSpec::Matchers.define :be_a_config_loading_error_hash do |regex|
|
33
|
+
match do |hash|
|
34
|
+
expect(hash).to include(:error)
|
35
|
+
error = hash[:error]
|
36
|
+
expect(error).to be_a(LogStash::ConfigLoadingError)
|
37
|
+
expect(error.message).to match(regex)
|
38
|
+
end
|
39
|
+
|
40
|
+
match_when_negated do
|
41
|
+
raise "Not implemented"
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
shared_context "execution_context" do
|
2
|
+
let(:pipeline) { double("pipeline") }
|
3
|
+
let(:pipeline_id) { :main }
|
4
|
+
let(:agent) { double("agent") }
|
5
|
+
let(:plugin_id) { :plugin_id }
|
6
|
+
let(:plugin_type) { :plugin_type }
|
7
|
+
let(:dlq_writer) { double("dlq_writer") }
|
8
|
+
let(:execution_context) do
|
9
|
+
::LogStash::ExecutionContext.new(pipeline, agent, plugin_id, plugin_type, dlq_writer)
|
10
|
+
end
|
11
|
+
|
12
|
+
before do
|
13
|
+
allow(pipeline).to receive(:pipeline_id).and_return(pipeline_id)
|
14
|
+
allow(pipeline).to receive(:agent).and_return(agent)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
shared_context "api setup" do
|
19
|
+
before :all do
|
20
|
+
clear_data_dir
|
21
|
+
settings = mock_settings
|
22
|
+
config_string = "input { generator {id => 'api-generator-pipeline' count => 100 } } output { dummyoutput {} }"
|
23
|
+
settings.set("config.string", config_string)
|
24
|
+
@agent = make_test_agent(settings)
|
25
|
+
@agent.register_pipeline(settings)
|
26
|
+
@agent.execute
|
27
|
+
end
|
28
|
+
|
29
|
+
after :all do
|
30
|
+
@agent.shutdown
|
31
|
+
end
|
32
|
+
|
33
|
+
include Rack::Test::Methods
|
34
|
+
|
35
|
+
def app()
|
36
|
+
described_class.new(nil, @agent)
|
37
|
+
end
|
38
|
+
end
|
@@ -97,7 +97,7 @@ end
|
|
97
97
|
|
98
98
|
shared_examples "not found" do
|
99
99
|
it "should return a 404 to unknown request" do
|
100
|
-
|
100
|
+
get "/i_want_to_believe-#{Time.now.to_i}"
|
101
101
|
expect(last_response.content_type).to eq("application/json")
|
102
102
|
expect(last_response).not_to be_ok
|
103
103
|
expect(last_response.status).to eq(404)
|
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.
|
4
|
+
version: 5.5.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,6 +100,20 @@ dependencies:
|
|
100
100
|
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: 1.0.5
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
requirement: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - '='
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 1.6.6
|
109
|
+
name: rack
|
110
|
+
prerelease: false
|
111
|
+
type: :runtime
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - '='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 1.6.6
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
118
|
requirement: !ruby/object:Gem::Requirement
|
105
119
|
requirements:
|
@@ -139,7 +153,7 @@ dependencies:
|
|
139
153
|
requirements:
|
140
154
|
- - '='
|
141
155
|
- !ruby/object:Gem::Version
|
142
|
-
version: 0.9.
|
156
|
+
version: 0.9.19
|
143
157
|
name: jruby-openssl
|
144
158
|
prerelease: false
|
145
159
|
type: :runtime
|
@@ -147,7 +161,7 @@ dependencies:
|
|
147
161
|
requirements:
|
148
162
|
- - '='
|
149
163
|
- !ruby/object:Gem::Version
|
150
|
-
version: 0.9.
|
164
|
+
version: 0.9.19
|
151
165
|
- !ruby/object:Gem::Dependency
|
152
166
|
requirement: !ruby/object:Gem::Requirement
|
153
167
|
requirements:
|
@@ -162,20 +176,6 @@ dependencies:
|
|
162
176
|
- - '='
|
163
177
|
- !ruby/object:Gem::Version
|
164
178
|
version: 0.10.6
|
165
|
-
- !ruby/object:Gem::Dependency
|
166
|
-
requirement: !ruby/object:Gem::Requirement
|
167
|
-
requirements:
|
168
|
-
- - "~>"
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
version: 0.4.2
|
171
|
-
name: jrmonitor
|
172
|
-
prerelease: false
|
173
|
-
type: :runtime
|
174
|
-
version_requirements: !ruby/object:Gem::Requirement
|
175
|
-
requirements:
|
176
|
-
- - "~>"
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
version: 0.4.2
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
180
|
requirement: !ruby/object:Gem::Requirement
|
181
181
|
requirements:
|
@@ -288,6 +288,46 @@ dependencies:
|
|
288
288
|
- - "~>"
|
289
289
|
- !ruby/object:Gem::Version
|
290
290
|
version: 3.3.9
|
291
|
+
- !ruby/object:Gem::Dependency
|
292
|
+
requirement: !ruby/object:Gem::Requirement
|
293
|
+
requirements:
|
294
|
+
- - "~>"
|
295
|
+
- !ruby/object:Gem::Version
|
296
|
+
version: '5.0'
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: 5.0.4
|
300
|
+
name: elasticsearch
|
301
|
+
prerelease: false
|
302
|
+
type: :runtime
|
303
|
+
version_requirements: !ruby/object:Gem::Requirement
|
304
|
+
requirements:
|
305
|
+
- - "~>"
|
306
|
+
- !ruby/object:Gem::Version
|
307
|
+
version: '5.0'
|
308
|
+
- - ">="
|
309
|
+
- !ruby/object:Gem::Version
|
310
|
+
version: 5.0.4
|
311
|
+
- !ruby/object:Gem::Dependency
|
312
|
+
requirement: !ruby/object:Gem::Requirement
|
313
|
+
requirements:
|
314
|
+
- - ">="
|
315
|
+
- !ruby/object:Gem::Version
|
316
|
+
version: 0.5.4
|
317
|
+
- - "<"
|
318
|
+
- !ruby/object:Gem::Version
|
319
|
+
version: 1.0.0
|
320
|
+
name: manticore
|
321
|
+
prerelease: false
|
322
|
+
type: :runtime
|
323
|
+
version_requirements: !ruby/object:Gem::Requirement
|
324
|
+
requirements:
|
325
|
+
- - ">="
|
326
|
+
- !ruby/object:Gem::Version
|
327
|
+
version: 0.5.4
|
328
|
+
- - "<"
|
329
|
+
- !ruby/object:Gem::Version
|
330
|
+
version: 1.0.0
|
291
331
|
description: The core components of logstash, the scalable log and event management tool
|
292
332
|
email:
|
293
333
|
- info@elastic.co
|
@@ -330,6 +370,8 @@ files:
|
|
330
370
|
- lib/logstash/config/grammar.rb
|
331
371
|
- lib/logstash/config/loader.rb
|
332
372
|
- lib/logstash/config/mixin.rb
|
373
|
+
- lib/logstash/config/modules_common.rb
|
374
|
+
- lib/logstash/elasticsearch_client.rb
|
333
375
|
- lib/logstash/environment.rb
|
334
376
|
- lib/logstash/errors.rb
|
335
377
|
- lib/logstash/event.rb
|
@@ -340,6 +382,7 @@ files:
|
|
340
382
|
- lib/logstash/inputs/base.rb
|
341
383
|
- lib/logstash/inputs/threadable.rb
|
342
384
|
- lib/logstash/instrument/collector.rb
|
385
|
+
- lib/logstash/instrument/global_metrics.rb
|
343
386
|
- lib/logstash/instrument/metric.rb
|
344
387
|
- lib/logstash/instrument/metric_store.rb
|
345
388
|
- lib/logstash/instrument/metric_type.rb
|
@@ -364,6 +407,17 @@ files:
|
|
364
407
|
- lib/logstash/logging.rb
|
365
408
|
- lib/logstash/logging/json.rb
|
366
409
|
- lib/logstash/logging/logger.rb
|
410
|
+
- lib/logstash/modules/cli_parser.rb
|
411
|
+
- lib/logstash/modules/elasticsearch_config.rb
|
412
|
+
- lib/logstash/modules/elasticsearch_resource.rb
|
413
|
+
- lib/logstash/modules/file_reader.rb
|
414
|
+
- lib/logstash/modules/importer.rb
|
415
|
+
- lib/logstash/modules/kibana_base_resource.rb
|
416
|
+
- lib/logstash/modules/kibana_config.rb
|
417
|
+
- lib/logstash/modules/kibana_resource.rb
|
418
|
+
- lib/logstash/modules/logstash_config.rb
|
419
|
+
- lib/logstash/modules/resource_base.rb
|
420
|
+
- lib/logstash/modules/scaffold.rb
|
367
421
|
- lib/logstash/namespace.rb
|
368
422
|
- lib/logstash/output_delegator.rb
|
369
423
|
- lib/logstash/output_delegator_strategies/legacy.rb
|
@@ -397,6 +451,7 @@ files:
|
|
397
451
|
- lib/logstash/util/buftok.rb
|
398
452
|
- lib/logstash/util/byte_value.rb
|
399
453
|
- lib/logstash/util/charset.rb
|
454
|
+
- lib/logstash/util/dead_letter_queue_manager.rb
|
400
455
|
- lib/logstash/util/decorators.rb
|
401
456
|
- lib/logstash/util/duration_formatter.rb
|
402
457
|
- lib/logstash/util/environment_variables.rb
|
@@ -419,20 +474,18 @@ files:
|
|
419
474
|
- lib/logstash/webserver.rb
|
420
475
|
- locales/en.yml
|
421
476
|
- logstash-core.gemspec
|
422
|
-
- spec/api/lib/api/logging_spec.rb
|
423
|
-
- spec/api/lib/api/node_plugins_spec.rb
|
424
|
-
- spec/api/lib/api/node_spec.rb
|
425
|
-
- spec/api/lib/api/node_stats_spec.rb
|
426
|
-
- spec/api/lib/api/plugins_spec.rb
|
427
|
-
- spec/api/lib/api/root_spec.rb
|
428
|
-
- spec/api/lib/api/support/resource_dsl_methods.rb
|
429
|
-
- spec/api/lib/commands/stats.rb
|
430
|
-
- spec/api/lib/errors_spec.rb
|
431
|
-
- spec/api/lib/rack_app_spec.rb
|
432
|
-
- spec/api/spec_helper.rb
|
433
477
|
- spec/conditionals_spec.rb
|
434
478
|
- spec/logstash/acked_queue_concurrent_stress_spec.rb
|
435
479
|
- spec/logstash/agent_spec.rb
|
480
|
+
- spec/logstash/api/commands/stats_spec.rb
|
481
|
+
- spec/logstash/api/errors_spec.rb
|
482
|
+
- spec/logstash/api/modules/logging_spec.rb
|
483
|
+
- spec/logstash/api/modules/node_plugins_spec.rb
|
484
|
+
- spec/logstash/api/modules/node_spec.rb
|
485
|
+
- spec/logstash/api/modules/node_stats_spec.rb
|
486
|
+
- spec/logstash/api/modules/plugins_spec.rb
|
487
|
+
- spec/logstash/api/modules/root_spec.rb
|
488
|
+
- spec/logstash/api/rack_app_spec.rb
|
436
489
|
- spec/logstash/codecs/base_spec.rb
|
437
490
|
- spec/logstash/config/config_ast_spec.rb
|
438
491
|
- spec/logstash/config/cpu_core_strategy_spec.rb
|
@@ -467,6 +520,7 @@ files:
|
|
467
520
|
- spec/logstash/output_delegator_spec.rb
|
468
521
|
- spec/logstash/outputs/base_spec.rb
|
469
522
|
- spec/logstash/patches_spec.rb
|
523
|
+
- spec/logstash/pipeline_dlq_commit_spec.rb
|
470
524
|
- spec/logstash/pipeline_pq_file_spec.rb
|
471
525
|
- spec/logstash/pipeline_reporter_spec.rb
|
472
526
|
- spec/logstash/pipeline_spec.rb
|
@@ -504,6 +558,7 @@ files:
|
|
504
558
|
- spec/support/helpers.rb
|
505
559
|
- spec/support/matchers.rb
|
506
560
|
- spec/support/mocks_classes.rb
|
561
|
+
- spec/support/shared_contexts.rb
|
507
562
|
- spec/support/shared_examples.rb
|
508
563
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
509
564
|
licenses:
|
@@ -536,20 +591,18 @@ signing_key:
|
|
536
591
|
specification_version: 4
|
537
592
|
summary: logstash-core - The core components of logstash
|
538
593
|
test_files:
|
539
|
-
- spec/api/lib/api/logging_spec.rb
|
540
|
-
- spec/api/lib/api/node_plugins_spec.rb
|
541
|
-
- spec/api/lib/api/node_spec.rb
|
542
|
-
- spec/api/lib/api/node_stats_spec.rb
|
543
|
-
- spec/api/lib/api/plugins_spec.rb
|
544
|
-
- spec/api/lib/api/root_spec.rb
|
545
|
-
- spec/api/lib/api/support/resource_dsl_methods.rb
|
546
|
-
- spec/api/lib/commands/stats.rb
|
547
|
-
- spec/api/lib/errors_spec.rb
|
548
|
-
- spec/api/lib/rack_app_spec.rb
|
549
|
-
- spec/api/spec_helper.rb
|
550
594
|
- spec/conditionals_spec.rb
|
551
595
|
- spec/logstash/acked_queue_concurrent_stress_spec.rb
|
552
596
|
- spec/logstash/agent_spec.rb
|
597
|
+
- spec/logstash/api/commands/stats_spec.rb
|
598
|
+
- spec/logstash/api/errors_spec.rb
|
599
|
+
- spec/logstash/api/modules/logging_spec.rb
|
600
|
+
- spec/logstash/api/modules/node_plugins_spec.rb
|
601
|
+
- spec/logstash/api/modules/node_spec.rb
|
602
|
+
- spec/logstash/api/modules/node_stats_spec.rb
|
603
|
+
- spec/logstash/api/modules/plugins_spec.rb
|
604
|
+
- spec/logstash/api/modules/root_spec.rb
|
605
|
+
- spec/logstash/api/rack_app_spec.rb
|
553
606
|
- spec/logstash/codecs/base_spec.rb
|
554
607
|
- spec/logstash/config/config_ast_spec.rb
|
555
608
|
- spec/logstash/config/cpu_core_strategy_spec.rb
|
@@ -584,6 +637,7 @@ test_files:
|
|
584
637
|
- spec/logstash/output_delegator_spec.rb
|
585
638
|
- spec/logstash/outputs/base_spec.rb
|
586
639
|
- spec/logstash/patches_spec.rb
|
640
|
+
- spec/logstash/pipeline_dlq_commit_spec.rb
|
587
641
|
- spec/logstash/pipeline_pq_file_spec.rb
|
588
642
|
- spec/logstash/pipeline_reporter_spec.rb
|
589
643
|
- spec/logstash/pipeline_spec.rb
|
@@ -621,4 +675,5 @@ test_files:
|
|
621
675
|
- spec/support/helpers.rb
|
622
676
|
- spec/support/matchers.rb
|
623
677
|
- spec/support/mocks_classes.rb
|
678
|
+
- spec/support/shared_contexts.rb
|
624
679
|
- spec/support/shared_examples.rb
|
@@ -1,87 +0,0 @@
|
|
1
|
-
# Ruby doesn't have common class for boolean,
|
2
|
-
# And to simplify the ResourceDSLMethods check it make sense to have it.
|
3
|
-
module Boolean; end
|
4
|
-
class TrueClass
|
5
|
-
include Boolean
|
6
|
-
end
|
7
|
-
class FalseClass
|
8
|
-
include Boolean
|
9
|
-
end
|
10
|
-
|
11
|
-
module ResourceDSLMethods
|
12
|
-
# Convert a nested hash to a mapping of key paths to expected classes
|
13
|
-
def hash_to_mapping(h, path=[], mapping={})
|
14
|
-
h.each do |k,v|
|
15
|
-
if v.is_a?(Hash)
|
16
|
-
hash_to_mapping(v, path + [k], mapping)
|
17
|
-
else
|
18
|
-
full_path = path + [k]
|
19
|
-
mapping[full_path] = v
|
20
|
-
end
|
21
|
-
end
|
22
|
-
mapping
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_api(expected, path)
|
26
|
-
context "GET #{path}" do
|
27
|
-
let(:payload) { LogStash::Json.load(last_response.body) }
|
28
|
-
|
29
|
-
before(:all) do
|
30
|
-
do_request { get path }
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should respond OK" do
|
34
|
-
expect(last_response).to be_ok
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
describe "the default metadata" do
|
39
|
-
it "should include the host" do
|
40
|
-
expect(payload["host"]).to eql(Socket.gethostname)
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should include the version" do
|
44
|
-
expect(payload["version"]).to eql(LOGSTASH_CORE_VERSION)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should include the http address" do
|
48
|
-
expect(payload["http_address"]).to eql("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}")
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should include the node name" do
|
52
|
-
expect(payload["name"]).to eql(@runner.agent.name)
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should include the node id" do
|
56
|
-
expect(payload["id"]).to eql(@runner.agent.id)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
hash_to_mapping(expected).each do |resource_path,klass|
|
61
|
-
dotted = resource_path.join(".")
|
62
|
-
|
63
|
-
it "should set '#{dotted}' at '#{path}' to be a '#{klass}'" do
|
64
|
-
expect(last_response).to be_ok # fail early if need be
|
65
|
-
resource_path_value = resource_path.reduce(payload) do |acc,v|
|
66
|
-
expect(acc.has_key?(v)).to eql(true), "Expected to find value '#{v}' in structure '#{acc}', but could not. Payload was '#{payload}'"
|
67
|
-
acc[v]
|
68
|
-
end
|
69
|
-
expect(resource_path_value).to be_a(klass), "could not find '#{dotted}' in #{payload}"
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
yield if block_given? # Add custom expectations
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_api_and_resources(expected, xopts={})
|
78
|
-
xopts[:exclude_from_root] ||= []
|
79
|
-
root_expectation = expected.clone
|
80
|
-
xopts[:exclude_from_root].each {|k| root_expectation.delete(k)}
|
81
|
-
test_api(root_expectation, "/")
|
82
|
-
|
83
|
-
expected.keys.each do |key|
|
84
|
-
test_api({key => expected[key]}, "/#{key}")
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|