logstash-input-tcp 3.0.6 → 4.0.0

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: 1caffd09fad0acdb3ab1bd24d98a522961ca925c
4
- data.tar.gz: 7719d66218cdfa7431c44919db3bed9983328a64
3
+ metadata.gz: aa0f656c6f22603752ced42c300389f6cb23370e
4
+ data.tar.gz: 6dfceac238b13dd4d9eeaf00dbb2960aacf2f28b
5
5
  SHA512:
6
- metadata.gz: a5cf8d7b1495f59ff810703828ab76ba450c0e9b74ca0b424dc3e579b6586c7abe431c15397e6c3d42d75bc53e6e9ea26747b665bc442d0ed940deb2ee60f078
7
- data.tar.gz: 4268349cfb16117443a21389cd9feb4997088ae8d3ea7e541c1e966213ccc4798879d1869d203c48b9946acf7b942c882016d8bc390191135588811e898bfb1b
6
+ metadata.gz: 1a5d0e142600f59ff10a4c83f579bcede1cc8197f19ded98c12ed115ec9a13dc6dc3a4d9ac9f334bb82ca074d4acf5d52a7c6fdf3f9120207e7f5f4b5c768951
7
+ data.tar.gz: cfcbaf32298b674747fff0f2b3ce8a5abccc38ccb31c7cec3d358ee2946b7946ca03c58bcc47592a08e78f7e0a7b659270fec1d828de6b456145b9786a5ec82f
data/CHANGELOG.md CHANGED
@@ -1,14 +1,14 @@
1
- ## 3.0.6
2
- - Change the log level of the SSLError for the handshake from **error** to **debug** https://github.com/logstash-plugins/logstash-input-tcp/pull/53
1
+ ## 4.0.0
2
+ - Update the plugin to the version 2.0 of the plugin api, this change is required for Logstash 5.0 compatibility. See https://github.com/elastic/logstash/issues/5141
3
3
  # 3.0.5
4
4
  - Fixed a bug where using a certificate with a passphrase wouldn't work.
5
5
  # 3.0.4
6
- - Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
6
+ - Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
7
7
  # 3.0.3
8
- - New dependency requirements for logstash-core for the 5.0 release
8
+ - New dependency requirements for logstash-core for the 5.0 release
9
9
  ## 3.0.2
10
- - Fixed a bug where previous connection would accidentally be closed when accepting new socket connection
11
- - Fixed an issue with log message which used a closed socket's peer address
10
+ - Fixed a bug where previous connection would accidentally be closed when accepting new socket connection
11
+ - Fixed an issue with log message which used a closed socket's peer address
12
12
 
13
13
  ## 3.0.1
14
14
  - properly convert sslsubject to string before assigning to event field, added specs, see https://github.com/logstash-plugins/logstash-input-tcp/pull/38
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
1
  source 'https://rubygems.org'
2
- gemspec
2
+
3
+ # Specify your gem's dependencies in logstash-mass_effect.gemspec
4
+ gemspec
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # encoding: utf-8
2
2
  require "logstash/inputs/base"
3
3
  require "logstash/util/socket_peer"
4
4
 
@@ -53,6 +53,10 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
53
53
  # Useful when the CA chain is not necessary in the system store.
54
54
  config :ssl_extra_chain_certs, :validate => :array, :default => []
55
55
 
56
+ HOST_FIELD = "host".freeze
57
+ PORT_FIELD = "port".freeze
58
+ SSLSUBJECT_FIELD = "sslsubject".freeze
59
+
56
60
  def initialize(*args)
57
61
  super(*args)
58
62
 
@@ -114,7 +118,7 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
114
118
  server_connection_thread(output_queue, socket)
115
119
  rescue OpenSSL::SSL::SSLError => e
116
120
  # log error, close socket, accept next connection
117
- @logger.debug? && @logger.debug("SSL Error", :exception => e, :backtrace => e.backtrace)
121
+ @logger.error("SSL Error", :exception => e, :backtrace => e.backtrace)
118
122
  rescue => e
119
123
  # if this exception occured while the plugin is stopping
120
124
  # just ignore and exit
@@ -151,9 +155,10 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
151
155
  peer = "#{client_address}:#{client_port}"
152
156
  while !stop?
153
157
  codec.decode(read(socket)) do |event|
154
- event["host"] ||= client_address
155
- event["port"] ||= client_port
156
- event["sslsubject"] ||= socket.peer_cert.subject.to_s if @ssl_enable && @ssl_verify
158
+ event.set(HOST_FIELD, client_address) unless event.get(HOST_FIELD)
159
+ event.set(PORT_FIELD, client_port) unless event.get(PORT_FIELD)
160
+ event.set(SSLSUBJECT_FIELD, socket.peer_cert.subject.to_s) if @ssl_enable && @ssl_verify && event.get(SSLSUBJECT_FIELD).nil?
161
+
157
162
  decorate(event)
158
163
  output_queue << event
159
164
  end
@@ -174,9 +179,10 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
174
179
  socket.close rescue nil
175
180
 
176
181
  codec.respond_to?(:flush) && codec.flush do |event|
177
- event["host"] ||= client_address
178
- event["port"] ||= client_port
179
- event["sslsubject"] ||= socket.peer_cert.subject.to_s if @ssl_enable && @ssl_verify
182
+ event.set(HOST_FIELD, client_address) unless event.get(HOST_FIELD)
183
+ event.set(PORT_FIELD, client_port) unless event.get(PORT_FIELD)
184
+ event.set(SSLSUBJECT_FIELD, socket.peer_cert.subject.to_s) if @ssl_enable && @ssl_verify && event.get(SSLSUBJECT_FIELD).nil?
185
+
180
186
  decorate(event)
181
187
  output_queue << event
182
188
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-tcp'
3
- s.version = '3.0.6'
3
+ s.version = '4.0.0'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "Read events over a TCP socket."
6
6
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -19,8 +19,11 @@ Gem::Specification.new do |s|
19
19
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" }
20
20
 
21
21
  # Gem dependencies
22
- s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0"
22
+ s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
23
23
 
24
+ # line vs streaming codecs required for fix_streaming_codecs
25
+ # TODO: fix_streaming_codecs should be refactored to not
26
+ # require the codecs to be installed.
24
27
  s.add_runtime_dependency 'logstash-codec-plain'
25
28
  s.add_runtime_dependency 'logstash-codec-line'
26
29
  s.add_runtime_dependency 'logstash-codec-json'
@@ -59,7 +59,7 @@ describe LogStash::Inputs::Tcp do
59
59
 
60
60
  insist { events.length } == event_count
61
61
  event_count.times do |i|
62
- insist { events[i]["message"] } == "#{i} ☹"
62
+ insist { events[i].get("message") } == "#{i} ☹"
63
63
  end
64
64
  end
65
65
 
@@ -86,9 +86,9 @@ describe LogStash::Inputs::Tcp do
86
86
  end
87
87
 
88
88
  # Make sure the 0xA3 latin-1 code converts correctly to UTF-8.
89
- insist { event["message"].size } == 1
90
- insist { event["message"].bytesize } == 2
91
- insist { event["message"] } == "£"
89
+ insist { event.get("message").size } == 1
90
+ insist { event.get("message").bytesize } == 2
91
+ insist { event.get("message") } == "£"
92
92
  end
93
93
 
94
94
  it "should read events with json codec" do
@@ -117,13 +117,13 @@ describe LogStash::Inputs::Tcp do
117
117
  queue.pop
118
118
  end
119
119
 
120
- insist { event["hello"] } == data["hello"]
121
- insist { event["foo"].to_a } == data["foo"] # to_a to cast Java ArrayList produced by JrJackson
122
- insist { event["baz"] } == data["baz"]
120
+ insist { event.get("hello") } == data["hello"]
121
+ insist { event.get("foo").to_a } == data["foo"] # to_a to cast Java ArrayList produced by JrJackson
122
+ insist { event.get("baz") } == data["baz"]
123
123
 
124
124
  # Make sure the tcp input, w/ json codec, uses the event's 'host' value,
125
125
  # if present, instead of providing its own
126
- insist { event["host"] } == data["host"]
126
+ insist { event.get("host") } == data["host"]
127
127
  end
128
128
 
129
129
  it "should read events with json codec (testing 'host' handling)" do
@@ -149,7 +149,7 @@ describe LogStash::Inputs::Tcp do
149
149
  queue.pop
150
150
  end
151
151
 
152
- insist { event["hello"] } == data["hello"]
152
+ insist { event.get("hello") } == data["hello"]
153
153
  insist { event }.include?("host")
154
154
  end
155
155
 
@@ -184,10 +184,10 @@ describe LogStash::Inputs::Tcp do
184
184
  end
185
185
 
186
186
  events.each_with_index do |event, idx|
187
- insist { event["hello"] } == data["hello"]
188
- insist { event["foo"].to_a } == data["foo"] # to_a to cast Java ArrayList produced by JrJackson
189
- insist { event["baz"] } == data["baz"]
190
- insist { event["idx"] } == idx + 1
187
+ insist { event.get("hello") } == data["hello"]
188
+ insist { event.get("foo").to_a } == data["foo"] # to_a to cast Java ArrayList produced by JrJackson
189
+ insist { event.get("baz") } == data["baz"]
190
+ insist { event.get("idx") } == idx + 1
191
191
  end # do
192
192
  end # describe
193
193
 
@@ -211,11 +211,11 @@ describe LogStash::Inputs::Tcp do
211
211
  end
212
212
 
213
213
  # since each message is sent on its own tcp connection & thread, exact receiving order cannot be garanteed
214
- event_count.times.collect{queue.pop}.sort_by{|event| event["message"]}
214
+ event_count.times.collect{queue.pop}.sort_by{|event| event.get("message")}
215
215
  end
216
216
 
217
217
  event_count.times do |i|
218
- insist { events[i]["message"] } == "#{i}"
218
+ insist { events[i].get("message") } == "#{i}"
219
219
  end
220
220
  end
221
221
 
@@ -252,8 +252,8 @@ describe LogStash::Inputs::Tcp do
252
252
 
253
253
  context "when ssl_enable is true" do
254
254
  let(:pki) { Flores::PKI.generate }
255
- let(:certificate) { pki[0] }
256
- let(:key) { pki[1] }
255
+ let(:certificate) { pki[0] }
256
+ let(:key) { pki[1] }
257
257
  let(:certificate_file) { Stud::Temporary.file }
258
258
  let(:key_file) { Stud::Temporary.file }
259
259
  let(:queue) { Queue.new }
metadata CHANGED
@@ -1,128 +1,130 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-tcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.6
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-14 00:00:00.000000000 Z
11
+ date: 2016-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: logstash-core-plugin-api
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - "~>"
17
18
  - !ruby/object:Gem::Version
18
- version: '1.0'
19
- name: logstash-core-plugin-api
20
- prerelease: false
19
+ version: '2.0'
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
+ name: logstash-codec-plain
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
- name: logstash-codec-plain
34
- prerelease: false
35
34
  type: :runtime
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
+ name: logstash-codec-line
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - ">="
45
46
  - !ruby/object:Gem::Version
46
47
  version: '0'
47
- name: logstash-codec-line
48
- prerelease: false
49
48
  type: :runtime
49
+ prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
+ name: logstash-codec-json
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - ">="
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
- name: logstash-codec-json
62
- prerelease: false
63
62
  type: :runtime
63
+ prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
+ name: logstash-codec-json_lines
70
71
  requirement: !ruby/object:Gem::Requirement
71
72
  requirements:
72
73
  - - ">="
73
74
  - !ruby/object:Gem::Version
74
75
  version: '0'
75
- name: logstash-codec-json_lines
76
- prerelease: false
77
76
  type: :runtime
77
+ prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
+ name: logstash-devutils
84
85
  requirement: !ruby/object:Gem::Requirement
85
86
  requirements:
86
87
  - - ">="
87
88
  - !ruby/object:Gem::Version
88
89
  version: '0'
89
- name: logstash-devutils
90
- prerelease: false
91
90
  type: :development
91
+ prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
+ name: flores
98
99
  requirement: !ruby/object:Gem::Requirement
99
100
  requirements:
100
101
  - - "~>"
101
102
  - !ruby/object:Gem::Version
102
103
  version: 0.0.6
103
- name: flores
104
- prerelease: false
105
104
  type: :development
105
+ prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.0.6
111
111
  - !ruby/object:Gem::Dependency
112
+ name: stud
112
113
  requirement: !ruby/object:Gem::Requirement
113
114
  requirements:
114
115
  - - "~>"
115
116
  - !ruby/object:Gem::Version
116
117
  version: 0.0.22
117
- name: stud
118
- prerelease: false
119
118
  type: :development
119
+ prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.0.22
125
- description: This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program
125
+ description: This gem is a Logstash plugin required to be installed on top of the
126
+ Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
127
+ gem is not a stand-alone program
126
128
  email: info@elastic.co
127
129
  executables: []
128
130
  extensions: []
@@ -144,7 +146,7 @@ licenses:
144
146
  metadata:
145
147
  logstash_plugin: 'true'
146
148
  logstash_group: input
147
- post_install_message:
149
+ post_install_message:
148
150
  rdoc_options: []
149
151
  require_paths:
150
152
  - lib
@@ -159,9 +161,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
161
  - !ruby/object:Gem::Version
160
162
  version: '0'
161
163
  requirements: []
162
- rubyforge_project:
163
- rubygems_version: 2.4.8
164
- signing_key:
164
+ rubyforge_project:
165
+ rubygems_version: 2.5.1
166
+ signing_key:
165
167
  specification_version: 4
166
168
  summary: Read events over a TCP socket.
167
169
  test_files: