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 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