logstash-input-tcp 3.0.6 → 4.0.0

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