fluent-plugin-scalyr 0.8.10 → 0.8.11

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.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #
2
4
  # Scalyr Output Plugin for Fluentd
3
5
  #
@@ -15,76 +17,73 @@
15
17
  # See the License for the specific language governing permissions and
16
18
  # limitations under the License.
17
19
 
20
+ require "helper"
21
+ require "flexmock/test_unit"
18
22
 
19
- require 'helper'
20
- require 'flexmock/test_unit'
21
-
23
+ # rubocop:disable Layout/LineLength
22
24
  class HandleResponseTest < Scalyr::ScalyrOutTest
23
-
24
25
  def test_handle_response_missing_status
25
26
  d = create_driver
26
- response = flexmock( Net::HTTPResponse, :code => '200', :body =>'{ "message":"An invalid message" }' )
27
- exception = assert_raise( Scalyr::ServerError, "Server error not raised for missing status" ) {
28
- d.instance.handle_response( response )
27
+ response = flexmock(Net::HTTPResponse, code: "200", body: '{ "message":"An invalid message" }')
28
+ exception = assert_raise(Scalyr::ServerError, "Server error not raised for missing status") {
29
+ d.instance.handle_response(response)
29
30
  }
30
31
 
31
- assert_equal( "JSON response does not contain status message", exception.message )
32
+ assert_equal("JSON response does not contain status message", exception.message)
32
33
  end
33
34
 
34
35
  def test_handle_response_discard_buffer
35
36
  d = create_driver
36
- response = flexmock( Net::HTTPResponse, :code => '200', :body =>'{ "message":"An invalid message", "status":"error/server/discardBuffer" }' )
37
- logger = flexmock( $log )
38
- logger.should_receive( :warn ).with( /buffer dropped/i )
39
- assert_nothing_raised( Scalyr::ServerError, Scalyr::ClientError, "Nothing should be raised when discarding the buffer" ) {
40
- d.instance.handle_response( response )
37
+ response = flexmock(Net::HTTPResponse, code: "200", body: '{ "message":"An invalid message", "status":"error/server/discardBuffer" }')
38
+ logger = flexmock($log)
39
+ logger.should_receive(:warn).once.with(/buffer dropped/i)
40
+ assert_nothing_raised(Scalyr::ServerError, Scalyr::ClientError, "Nothing should be raised when discarding the buffer") {
41
+ d.instance.handle_response(response)
41
42
  }
42
-
43
43
  end
44
44
 
45
45
  def test_handle_response_unknown_error
46
46
  d = create_driver
47
- response = flexmock( Net::HTTPResponse, :code => '200', :body =>'{ "message":"An invalid message", "status":"error/other" }' )
48
- exception = assert_raise( Scalyr::ServerError, "Server error not raised for error status" ) {
49
- d.instance.handle_response( response )
47
+ response = flexmock(Net::HTTPResponse, code: "200", body: '{ "message":"An invalid message", "status":"error/other" }')
48
+ exception = assert_raise(Scalyr::ServerError, "Server error not raised for error status") {
49
+ d.instance.handle_response(response)
50
50
  }
51
- assert_equal( "error/other", exception.message )
51
+ assert_equal("error/other", exception.message)
52
52
  end
53
53
 
54
54
  def test_handle_response_client_error
55
55
  d = create_driver
56
- response = flexmock( Net::HTTPResponse, :code => '200', :body =>'{ "message":"An invalid message", "status":"error/client/test" }' )
57
- exception = assert_raise( Scalyr::ClientError, "Client error not raised for error status" ) {
58
- d.instance.handle_response( response )
56
+ response = flexmock(Net::HTTPResponse, code: "200", body: '{ "message":"An invalid message", "status":"error/client/test" }')
57
+ exception = assert_raise(Scalyr::ClientError, "Client error not raised for error status") {
58
+ d.instance.handle_response(response)
59
59
  }
60
- assert_equal( "error/client/test", exception.message )
60
+ assert_equal("error/client/test", exception.message)
61
61
  end
62
62
 
63
63
  def test_handle_response_server_error
64
64
  d = create_driver
65
- response = flexmock( Net::HTTPResponse, :code => '200', :body =>'{ "message":"An invalid message", "status":"error/server/test" }' )
66
- exception = assert_raise( Scalyr::ServerError, "Server error not raised for error status" ) {
67
- d.instance.handle_response( response )
65
+ response = flexmock(Net::HTTPResponse, code: "200", body: '{ "message":"An invalid message", "status":"error/server/test" }')
66
+ exception = assert_raise(Scalyr::ServerError, "Server error not raised for error status") {
67
+ d.instance.handle_response(response)
68
68
  }
69
- assert_equal( "error/server/test", exception.message )
69
+ assert_equal("error/server/test", exception.message)
70
70
  end
71
71
 
72
72
  def test_handle_response_code_4xx
73
73
  d = create_driver
74
- response = flexmock( Net::HTTPResponse, :code => '404', :body =>'{ "status":"error/server/fileNotFound" }' )
75
- exception = assert_raise( Scalyr::Client4xxError, "No 4xx exception raised" ) {
76
- d.instance.handle_response( response )
74
+ response = flexmock(Net::HTTPResponse, code: "404", body: '{ "status":"error/server/fileNotFound" }')
75
+ exception = assert_raise(Scalyr::Client4xxError, "No 4xx exception raised") {
76
+ d.instance.handle_response(response)
77
77
  }
78
- assert_equal( "error/server/fileNotFound", exception.message )
78
+ assert_equal("error/server/fileNotFound", exception.message)
79
79
  end
80
80
 
81
81
  def test_handle_response_code_200
82
82
  d = create_driver
83
- response = flexmock( Net::HTTPResponse, :code => '200', :body =>'{ "status":"success" }' )
84
- exception = assert_nothing_raised( Scalyr::ServerError, Scalyr::ClientError, "Error raised on success" ) {
85
- d.instance.handle_response( response )
83
+ response = flexmock(Net::HTTPResponse, code: "200", body: '{ "status":"success" }')
84
+ assert_nothing_raised(Scalyr::ServerError, Scalyr::ClientError, "Error raised on success") {
85
+ d.instance.handle_response(response)
86
86
  }
87
87
  end
88
-
89
88
  end
90
-
89
+ # rubocop:enable Layout/LineLength
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #
2
4
  # Scalyr Output Plugin for Fluentd
3
5
  #
@@ -15,21 +17,110 @@
15
17
  # See the License for the specific language governing permissions and
16
18
  # limitations under the License.
17
19
 
18
-
19
- require 'helper'
20
+ require "helper"
21
+ require "flexmock/test_unit"
20
22
 
21
23
  class SSLVerifyTest < Scalyr::ScalyrOutTest
24
+ def test_good_ssl_certificates
25
+ d = create_driver CONFIG
26
+
27
+ d.run(default_tag: "test") do
28
+ time = event_time("2015-04-01 10:00:00 UTC")
29
+ d.feed(time, {"a" => 1})
30
+
31
+ logger = flexmock($log)
32
+ logger.should_receive(:warn).times(0).with(/certificate verification failed/i)
33
+ logger.should_receive(:warn).times(0).with(/certificate verify failed/i)
34
+ logger.should_receive(:warn).once.with(/discarding buffer/i)
35
+ end
36
+ end
37
+
38
+ def test_no_ssl_certificates
39
+ d = create_driver %(
40
+ api_write_token test_token
41
+ )
42
+
43
+ d.run(default_tag: "test") do
44
+ time = event_time("2015-04-01 10:00:00 UTC")
45
+ d.feed(time, {"a" => 1})
46
+
47
+ logger = flexmock($log)
48
+ logger.should_receive(:warn).times(0).with(/certificate verification failed/i)
49
+ logger.should_receive(:warn).times(0).with(/certificate verify failed/i)
50
+ logger.should_receive(:warn).once.with(/discarding buffer/i)
51
+ end
52
+ end
53
+
22
54
  def test_bad_ssl_certificates
23
- d = create_driver CONFIG + 'ssl_ca_bundle_path /home/invalid'
55
+ d = create_driver CONFIG + "ssl_ca_bundle_path /home/invalid"
56
+
57
+ d.run(default_tag: "test") do
58
+ time = event_time("2015-04-01 10:00:00 UTC")
59
+ d.feed(time, {"a" => 1})
60
+
61
+ logger = flexmock($log)
62
+ logger.should_receive(:warn).once.with(/certificate verification failed/i)
63
+ logger.should_receive(:warn).once.with(/certificate verify failed/i)
64
+ logger.should_receive(:warn).once.with(/discarding buffer/i)
65
+ end
66
+ end
67
+
68
+ def test_bad_system_ssl_certificates
69
+ `sudo mv #{OpenSSL::X509::DEFAULT_CERT_FILE} /tmp/system_cert.pem`
70
+ `sudo mv #{OpenSSL::X509::DEFAULT_CERT_DIR} /tmp/system_certs`
71
+
72
+ begin
73
+ d = create_driver %(
74
+ api_write_token test_token
75
+ )
76
+
77
+ d.run(default_tag: "test") do
78
+ time = event_time("2015-04-01 10:00:00 UTC")
79
+ d.feed(time, {"a" => 1})
80
+
81
+ logger = flexmock($log)
82
+ logger.should_receive(:warn).once.with(/certificate verification failed/i)
83
+ logger.should_receive(:warn).once.with(/certificate verify failed/i)
84
+ logger.should_receive(:warn).once.with(/discarding buffer/i)
85
+ end
86
+ ensure
87
+ `sudo mv /tmp/system_certs #{OpenSSL::X509::DEFAULT_CERT_DIR}`
88
+ `sudo mv /tmp/system_cert.pem #{OpenSSL::X509::DEFAULT_CERT_FILE}`
89
+ end
90
+ end
91
+
92
+ def test_hostname_verification
93
+ agent_scalyr_com_ip = `dig +short agent.scalyr.com 2> /dev/null | tail -n 1 | tr -d "\n"`
94
+ if agent_scalyr_com_ip.empty?
95
+ agent_scalyr_com_ip = `getent hosts agent.scalyr.com \
96
+ | awk '{ print $1 }' | tail -n 1 | tr -d "\n"`
97
+ end
98
+ mock_host = "invalid.mitm.should.fail.test.agent.scalyr.com"
99
+ etc_hosts_entry = "#{agent_scalyr_com_ip} #{mock_host}"
100
+ hosts_bkp = `sudo cat /etc/hosts`
101
+ hosts_bkp = hosts_bkp.chomp
102
+ # Add mock /etc/hosts entry and config scalyr_server entry
103
+ `echo "#{etc_hosts_entry}" | sudo tee -a /etc/hosts`
24
104
 
25
- time = Time.parse("2015-04-01 10:00:00 UTC").to_i
26
- d.emit( { "a" => 1 }, time )
105
+ begin
106
+ d = create_driver %(
107
+ api_write_token test_token
108
+ scalyr_server https://invalid.mitm.should.fail.test.agent.scalyr.com:443
109
+ )
27
110
 
28
- logger = flexmock( $log )
29
- logger.should_receive( :warn ).with( /certificate verification failed/i )
30
- logger.should_receive( :warn ).with( /certificate verify failed/i )
31
- logger.should_receive( :warn ).with( /discarding buffer/i )
111
+ d.run(default_tag: "test") do
112
+ time = event_time("2015-04-01 10:00:00 UTC")
113
+ d.feed(time, {"a" => 1})
32
114
 
33
- d.run
115
+ logger = flexmock($log)
116
+ logger.should_receive(:warn).once.with(/certificate verification failed/i)
117
+ logger.should_receive(:warn).once.with(/certificate verify failed/i)
118
+ logger.should_receive(:warn).once.with(/discarding buffer/i)
119
+ end
120
+ ensure
121
+ # Clean up the hosts file
122
+ `sudo truncate -s 0 /etc/hosts`
123
+ `echo "#{hosts_bkp}" | sudo tee -a /etc/hosts`
124
+ end
34
125
  end
35
126
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-scalyr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.10
4
+ version: 0.8.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Imron Alston
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-24 00:00:00.000000000 Z
11
+ date: 2020-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ffi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.9.25
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.9.25
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: fluentd
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -30,20 +44,6 @@ dependencies:
30
44
  - - "<"
31
45
  - !ruby/object:Gem::Version
32
46
  version: '2'
33
- - !ruby/object:Gem::Dependency
34
- name: ffi
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - '='
38
- - !ruby/object:Gem::Version
39
- version: 1.9.25
40
- type: :runtime
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - '='
45
- - !ruby/object:Gem::Version
46
- version: 1.9.25
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rbzip2
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -73,61 +73,75 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
- name: rake
76
+ name: bundler
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.9'
81
+ version: '1.9'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '0.9'
88
+ version: '1.9'
89
89
  - !ruby/object:Gem::Dependency
90
- name: test-unit
90
+ name: flexmock
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '3.0'
95
+ version: '1.2'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '3.0'
102
+ version: '1.2'
103
103
  - !ruby/object:Gem::Dependency
104
- name: flexmock
104
+ name: rake
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '1.2'
109
+ version: '0.9'
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '1.2'
116
+ version: '0.9'
117
117
  - !ruby/object:Gem::Dependency
118
- name: bundler
118
+ name: rubocop
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '1.9'
123
+ version: '0.4'
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '1.9'
130
+ version: '0.4'
131
+ - !ruby/object:Gem::Dependency
132
+ name: test-unit
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '3.0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.0'
131
145
  description: Sends log data collected by fluentd to Scalyr (http://www.scalyr.com)
132
146
  email: imron@scalyr.com
133
147
  executables: []
@@ -143,7 +157,7 @@ files:
143
157
  - fluent-plugin-scalyr.gemspec
144
158
  - fluent.conf.sample
145
159
  - lib/fluent/plugin/out_scalyr.rb
146
- - lib/fluent/plugin/scalyr-exceptions.rb
160
+ - lib/fluent/plugin/scalyr_exceptions.rb
147
161
  - test/helper.rb
148
162
  - test/test_config.rb
149
163
  - test/test_events.rb
@@ -168,13 +182,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
182
  - !ruby/object:Gem::Version
169
183
  version: '0'
170
184
  requirements: []
171
- rubygems_version: 3.0.6
185
+ rubygems_version: 3.0.3
172
186
  signing_key:
173
187
  specification_version: 4
174
188
  summary: Scalyr plugin for fluentd
175
189
  test_files:
190
+ - test/helper.rb
191
+ - test/test_events.rb
176
192
  - test/test_handle_response.rb
177
- - test/test_ssl_verify.rb
178
193
  - test/test_config.rb
179
- - test/test_events.rb
180
- - test/helper.rb
194
+ - test/test_ssl_verify.rb