logstash-output-http 2.0.2 → 2.0.3
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/CHANGELOG.md +5 -1
- data/lib/logstash/outputs/http.rb +5 -5
- data/logstash-output-http.gemspec +1 -1
- data/spec/outputs/http_spec.rb +22 -5
- metadata +28 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73a597250df181f829b48c449711b879e794e153
|
4
|
+
data.tar.gz: 2eefc03af59e7a6b19f821080c320c5877f06a5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd8587ee8375b620c39f817ac8cbb838f874698ed3bfb62bc33d31f75bfd1bcd48d42ddfac372648c491675bf0a971f9315771d2a4f654762772b678aa20aee8
|
7
|
+
data.tar.gz: 179ec4113a7cce26daab853ffec1b86c2012311475969a70c3f5e4a0ff20ce39f4f36cf00228d9da467d359a90b63e04a2407f538a2b3b4209797c1a19cfe7c9
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
+
## 2.0.3
|
2
|
+
- fixed potential race condition on async callbacks
|
3
|
+
- silenced specs equest logs and other spec robustness fixes
|
4
|
+
|
1
5
|
## 2.0.0
|
2
|
-
- Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully,
|
6
|
+
- Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully,
|
3
7
|
instead of using Thread.raise on the plugins' threads. Ref: https://github.com/elastic/logstash/pull/3895
|
4
8
|
- Dependency on logstash-core update to 2.0
|
5
9
|
|
@@ -90,8 +90,6 @@ class LogStash::Outputs::Http < LogStash::Outputs::Base
|
|
90
90
|
end # def register
|
91
91
|
|
92
92
|
def receive(event)
|
93
|
-
|
94
|
-
|
95
93
|
body = event_body(event)
|
96
94
|
|
97
95
|
# Block waiting for a token
|
@@ -104,11 +102,10 @@ class LogStash::Outputs::Http < LogStash::Outputs::Base
|
|
104
102
|
# Create an async request
|
105
103
|
request = client.send(@http_method, url, body: body, headers: headers, async: true)
|
106
104
|
|
107
|
-
#
|
108
|
-
request_async_background(request)
|
105
|
+
# attach handlers before performing request
|
109
106
|
|
110
|
-
# Make sure we return the token to the pool
|
111
107
|
request.on_complete do
|
108
|
+
# Make sure we return the token to the pool
|
112
109
|
@request_tokens << token
|
113
110
|
end
|
114
111
|
|
@@ -133,6 +130,9 @@ class LogStash::Outputs::Http < LogStash::Outputs::Base
|
|
133
130
|
:backtrace => exception.backtrace
|
134
131
|
)
|
135
132
|
end
|
133
|
+
|
134
|
+
# Invoke it using the Manticore Executor (CachedThreadPool) directly
|
135
|
+
request_async_background(request)
|
136
136
|
end
|
137
137
|
|
138
138
|
private
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-output-http'
|
4
|
-
s.version = '2.0.
|
4
|
+
s.version = '2.0.3'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "This output lets you `PUT` or `POST` events to a generic HTTP(S) endpoint"
|
7
7
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
data/spec/outputs/http_spec.rb
CHANGED
@@ -10,7 +10,19 @@ class LogStash::Outputs::Http
|
|
10
10
|
attr_reader :request_tokens
|
11
11
|
end
|
12
12
|
|
13
|
+
# note that Sinatra startup and shutdown messages are directly logged to stderr so
|
14
|
+
# it is not really possible to disable them without reopening stderr which is not advisable.
|
15
|
+
#
|
16
|
+
# == Sinatra (v1.4.6) has taken the stage on 51572 for development with backup from WEBrick
|
17
|
+
# == Sinatra has ended his set (crowd applauds)
|
18
|
+
|
13
19
|
class TestApp < Sinatra::Base
|
20
|
+
|
21
|
+
# disable WEBrick logging
|
22
|
+
def self.server_settings
|
23
|
+
{ :AccessLog => [], :Logger => WEBrick::BasicLog::new(nil, WEBrick::BasicLog::FATAL) }
|
24
|
+
end
|
25
|
+
|
14
26
|
def self.multiroute(methods, path, &block)
|
15
27
|
methods.each do |method|
|
16
28
|
method.to_sym
|
@@ -41,16 +53,20 @@ RSpec.configure do |config|
|
|
41
53
|
#http://stackoverflow.com/questions/6557079/start-and-call-ruby-http-server-in-the-same-script
|
42
54
|
def sinatra_run_wait(app, opts)
|
43
55
|
queue = Queue.new
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
56
|
+
|
57
|
+
Thread.new(queue) do |queue|
|
58
|
+
begin
|
59
|
+
app.run!(opts) do |server|
|
60
|
+
queue.push("started")
|
61
|
+
end
|
62
|
+
rescue
|
63
|
+
# ignore
|
48
64
|
end
|
49
65
|
end
|
66
|
+
|
50
67
|
queue.pop # blocks until the run! callback runs
|
51
68
|
end
|
52
69
|
|
53
|
-
|
54
70
|
config.before(:suite) do
|
55
71
|
sinatra_run_wait(TestApp, :port => PORT, :server => 'webrick')
|
56
72
|
end
|
@@ -62,6 +78,7 @@ describe LogStash::Outputs::Http do
|
|
62
78
|
def wait_for_request
|
63
79
|
|
64
80
|
loop do
|
81
|
+
sleep(0.1)
|
65
82
|
break if subject.request_tokens.size > 0
|
66
83
|
end
|
67
84
|
end
|
metadata
CHANGED
@@ -1,16 +1,25 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: logstash-core
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.0.snapshot
|
20
|
+
- - <
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.0.0
|
14
23
|
requirement: !ruby/object:Gem::Requirement
|
15
24
|
requirements:
|
16
25
|
- - '>='
|
@@ -19,18 +28,18 @@ dependencies:
|
|
19
28
|
- - <
|
20
29
|
- !ruby/object:Gem::Version
|
21
30
|
version: 3.0.0
|
22
|
-
name: logstash-core
|
23
31
|
prerelease: false
|
24
32
|
type: :runtime
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: logstash-mixin-http_client
|
25
35
|
version_requirements: !ruby/object:Gem::Requirement
|
26
36
|
requirements:
|
27
37
|
- - '>='
|
28
38
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.0.
|
39
|
+
version: 2.0.2
|
30
40
|
- - <
|
31
41
|
- !ruby/object:Gem::Version
|
32
42
|
version: 3.0.0
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
43
|
requirement: !ruby/object:Gem::Requirement
|
35
44
|
requirements:
|
36
45
|
- - '>='
|
@@ -39,88 +48,79 @@ dependencies:
|
|
39
48
|
- - <
|
40
49
|
- !ruby/object:Gem::Version
|
41
50
|
version: 3.0.0
|
42
|
-
name: logstash-mixin-http_client
|
43
51
|
prerelease: false
|
44
52
|
type: :runtime
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: logstash-devutils
|
45
55
|
version_requirements: !ruby/object:Gem::Requirement
|
46
56
|
requirements:
|
47
57
|
- - '>='
|
48
58
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
50
|
-
- - <
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 3.0.0
|
53
|
-
- !ruby/object:Gem::Dependency
|
59
|
+
version: '0'
|
54
60
|
requirement: !ruby/object:Gem::Requirement
|
55
61
|
requirements:
|
56
62
|
- - '>='
|
57
63
|
- !ruby/object:Gem::Version
|
58
64
|
version: '0'
|
59
|
-
name: logstash-devutils
|
60
65
|
prerelease: false
|
61
66
|
type: :development
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: logstash-codec-plain
|
62
69
|
version_requirements: !ruby/object:Gem::Requirement
|
63
70
|
requirements:
|
64
71
|
- - '>='
|
65
72
|
- !ruby/object:Gem::Version
|
66
73
|
version: '0'
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
74
|
requirement: !ruby/object:Gem::Requirement
|
69
75
|
requirements:
|
70
76
|
- - '>='
|
71
77
|
- !ruby/object:Gem::Version
|
72
78
|
version: '0'
|
73
|
-
name: logstash-codec-plain
|
74
79
|
prerelease: false
|
75
80
|
type: :development
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: sinatra
|
76
83
|
version_requirements: !ruby/object:Gem::Requirement
|
77
84
|
requirements:
|
78
85
|
- - '>='
|
79
86
|
- !ruby/object:Gem::Version
|
80
87
|
version: '0'
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
88
|
requirement: !ruby/object:Gem::Requirement
|
83
89
|
requirements:
|
84
90
|
- - '>='
|
85
91
|
- !ruby/object:Gem::Version
|
86
92
|
version: '0'
|
87
|
-
name: sinatra
|
88
93
|
prerelease: false
|
89
94
|
type: :development
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: webrick
|
90
97
|
version_requirements: !ruby/object:Gem::Requirement
|
91
98
|
requirements:
|
92
99
|
- - '>='
|
93
100
|
- !ruby/object:Gem::Version
|
94
101
|
version: '0'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
102
|
requirement: !ruby/object:Gem::Requirement
|
97
103
|
requirements:
|
98
104
|
- - '>='
|
99
105
|
- !ruby/object:Gem::Version
|
100
106
|
version: '0'
|
101
|
-
name: webrick
|
102
107
|
prerelease: false
|
103
108
|
type: :development
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - '>='
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '0'
|
109
109
|
description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program
|
110
110
|
email: info@elastic.co
|
111
111
|
executables: []
|
112
112
|
extensions: []
|
113
113
|
extra_rdoc_files: []
|
114
114
|
files:
|
115
|
+
- lib/logstash/outputs/http.rb
|
116
|
+
- spec/outputs/http_spec.rb
|
117
|
+
- logstash-output-http.gemspec
|
115
118
|
- CHANGELOG.md
|
119
|
+
- README.md
|
116
120
|
- CONTRIBUTORS
|
117
121
|
- Gemfile
|
118
122
|
- LICENSE
|
119
123
|
- NOTICE.TXT
|
120
|
-
- README.md
|
121
|
-
- lib/logstash/outputs/http.rb
|
122
|
-
- logstash-output-http.gemspec
|
123
|
-
- spec/outputs/http_spec.rb
|
124
124
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
125
125
|
licenses:
|
126
126
|
- Apache License (2.0)
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
145
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.1.9
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: This output lets you `PUT` or `POST` events to a generic HTTP(S) endpoint
|