logstash-output-http 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd31e8b068801076f37ec2602c5a58a2f36cd534
4
- data.tar.gz: 2116bfe2f7ebf9340a6bfd35cb57a39747c540ec
3
+ metadata.gz: 73a597250df181f829b48c449711b879e794e153
4
+ data.tar.gz: 2eefc03af59e7a6b19f821080c320c5877f06a5c
5
5
  SHA512:
6
- metadata.gz: f642d0e46bc2b752d6d94c021a76b17af835c2a7789a4c91c66b96e332763cba54a9b8a1cb90e797421f351dc010129c4dcae1027e28776d1f7a14095abe53e2
7
- data.tar.gz: bb0ecb8c1094047d37f4f85eded0cb89b7f67508953da3f563dfc78a5f5dcea27d4ba850daea464b98c4a4838cc41461e949873474fa099614056051a1880aea
6
+ metadata.gz: dd8587ee8375b620c39f817ac8cbb838f874698ed3bfb62bc33d31f75bfd1bcd48d42ddfac372648c491675bf0a971f9315771d2a4f654762772b678aa20aee8
7
+ data.tar.gz: 179ec4113a7cce26daab853ffec1b86c2012311475969a70c3f5e4a0ff20ce39f4f36cf00228d9da467d359a90b63e04a2407f538a2b3b4209797c1a19cfe7c9
@@ -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
- # Invoke it using the Manticore Executor (CachedThreadPool) directly
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.2'
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"
@@ -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
- thread = Thread.new do
45
- Thread.abort_on_exception = true
46
- app.run!(opts) do |server|
47
- queue.push("started")
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.2
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-09 00:00:00.000000000 Z
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.0.snapshot
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: 2.0.2
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.4.8
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