r7insight 2.7.6 → 3.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 +4 -4
- data/.gitignore +7 -0
- data/.travis.yml +13 -0
- data/CONTRIBUTING.md +31 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +36 -0
- data/LICENSE +2 -2
- data/Makefile +34 -0
- data/README.md +25 -18
- data/Rakefile +9 -7
- data/lib/{le.rb → r7_insight.rb} +19 -28
- data/lib/{le → r7_insight}/host.rb +11 -7
- data/lib/r7_insight/host/connection.rb +300 -0
- data/r7insight.gemspec +31 -0
- data/test/host_spec.rb +18 -14
- data/test/http_spec.rb +42 -23
- data/test/r7insight_spec.rb +312 -0
- data/test/region.rb +47 -26
- data/test/spec_helper.rb +3 -1
- metadata +45 -27
- data/LE.gemspec +0 -29
- data/lib/le/host/connection.rb +0 -315
- data/test/le_spec.rb +0 -142
data/r7insight.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'English'
|
4
|
+
|
5
|
+
lib = File.expand_path('lib', __dir__)
|
6
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
7
|
+
require 'r7_insight'
|
8
|
+
|
9
|
+
Gem::Specification.new do |gem|
|
10
|
+
gem.name = 'r7insight'
|
11
|
+
gem.version = '3.0.0'
|
12
|
+
gem.date = Time.now
|
13
|
+
gem.summary = 'Rapid7 Insight Platform logging plugin'
|
14
|
+
gem.licenses = ['MIT']
|
15
|
+
gem.description = <<DESC
|
16
|
+
Rapid7 Insight Platform Ruby library for logging
|
17
|
+
DESC
|
18
|
+
|
19
|
+
gem.authors = ['Rapid7']
|
20
|
+
gem.email = 'support@rapid7.com'
|
21
|
+
gem.homepage = 'https://github.com/rapid7/r7insight_ruby'
|
22
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
23
|
+
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
24
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
25
|
+
gem.require_paths = ['lib']
|
26
|
+
|
27
|
+
gem.add_development_dependency 'activesupport', '~> 6.0.0'
|
28
|
+
gem.add_development_dependency 'bundler', '~> 2.0.0'
|
29
|
+
gem.add_development_dependency 'minitest', '~> 5.12.2'
|
30
|
+
gem.add_development_dependency 'rake', '~> 13.0.0'
|
31
|
+
end
|
data/test/host_spec.rb
CHANGED
@@ -1,23 +1,27 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
|
-
|
3
|
+
require 'spec_helper'
|
5
4
|
|
5
|
+
describe R7Insight::Host do
|
6
6
|
let(:token) { '11111111-2222-3333-aaaa-bbbbbbbbbbbb' }
|
7
|
+
let(:region) { 'eu' }
|
7
8
|
let(:local) { false }
|
8
9
|
let(:debug) { false }
|
9
10
|
let(:ssl) { true }
|
10
11
|
let(:udp) { nil }
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
let(:
|
15
|
-
let(:
|
16
|
-
|
17
|
-
let(:
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
let(:datahub_endpoint) { ['', 10_000] }
|
14
|
+
let(:host_id) { '' }
|
15
|
+
let(:custom_host) { [false, ''] }
|
16
|
+
let(:use_data_endpoint) { true }
|
17
|
+
|
18
|
+
let(:host) do
|
19
|
+
R7Insight::Host::CONNECTION.new(token, region, local, debug, ssl, datahub_endpoint,
|
20
|
+
host_id, custom_host, udp, use_data_endpoint)
|
21
|
+
end
|
22
|
+
describe 'host' do
|
23
|
+
it 'is an instance of CONNECTION' do
|
24
|
+
assert_instance_of(R7Insight::Host::CONNECTION, host)
|
25
|
+
end
|
26
|
+
end
|
23
27
|
end
|
data/test/http_spec.rb
CHANGED
@@ -1,33 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'pathname'
|
3
5
|
|
4
|
-
describe
|
5
|
-
|
6
|
+
describe R7Insight::Host::CONNECTION do
|
6
7
|
let(:token) { '11111111-2222-3333-aaaa-bbbbbbbbbbbb' }
|
8
|
+
let(:region) { 'eu' }
|
7
9
|
let(:local) { false }
|
8
10
|
let(:debug) { false }
|
9
11
|
let(:ssl) { false }
|
10
12
|
let(:udp) { nil }
|
11
13
|
|
12
|
-
let(:datahub_endpoint) { [
|
13
|
-
let(:host_id) {
|
14
|
-
let(:custom_host) {[false,
|
15
|
-
let(:endpoint)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
let(:logger_console)
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
14
|
+
let(:datahub_endpoint) { ['', 10_000] }
|
15
|
+
let(:host_id) { '' }
|
16
|
+
let(:custom_host) { [false, ''] }
|
17
|
+
let(:endpoint) { false }
|
18
|
+
|
19
|
+
let(:host) do
|
20
|
+
R7Insight::Host::CONNECTION.new(token, region, local, debug, ssl, datahub_endpoint,
|
21
|
+
host_id, custom_host, udp, endpoint)
|
22
|
+
end
|
23
|
+
|
24
|
+
let(:logger_console) { host.instance_variable_get(:@logger_console) }
|
25
|
+
|
26
|
+
describe 'host' do
|
27
|
+
it 'is an instance of CONNECTION' do
|
28
|
+
assert_instance_of(R7Insight::Host::CONNECTION, host)
|
29
|
+
end
|
30
|
+
it 'region is expected value' do
|
31
|
+
assert_equal(host.region, 'eu')
|
32
|
+
end
|
33
|
+
it 'local is expected value' do
|
34
|
+
refute(host.local)
|
35
|
+
end
|
36
|
+
it 'debug is expected value' do
|
37
|
+
refute(host.debug)
|
38
|
+
end
|
39
|
+
it 'ssl is expected value' do
|
40
|
+
refute(host.ssl)
|
41
|
+
end
|
42
|
+
it 'udp port is expected value' do
|
43
|
+
assert_nil(host.udp_port)
|
44
|
+
end
|
45
|
+
it 'id is expected value' do
|
46
|
+
assert_equal(host_id, '')
|
47
|
+
end
|
48
|
+
it 'custom_host is expected value' do
|
49
|
+
assert_equal(custom_host, [false, ''])
|
50
|
+
end
|
51
|
+
end
|
33
52
|
end
|
@@ -0,0 +1,312 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe R7Insight do
|
6
|
+
let(:token) { '11111111-2222-3333-aaaa-bbbbbbbbbbbb' }
|
7
|
+
let(:local) { false }
|
8
|
+
let(:region) { 'eu' }
|
9
|
+
let(:logger) { R7Insight.new(token, region, local: local) }
|
10
|
+
let(:logdev) { logger.instance_variable_get(:@logdev).dev }
|
11
|
+
let(:logger_console) { logdev.instance_variable_get(:@logger_console) }
|
12
|
+
let(:logger_console_dev) { logger_console.instance_variable_get(:@logdev).dev }
|
13
|
+
|
14
|
+
describe 'when non-Rails environment' do
|
15
|
+
describe 'is initialised with just a token' do
|
16
|
+
let(:logger) { R7Insight.new(token, region) }
|
17
|
+
|
18
|
+
describe 'logger' do
|
19
|
+
it 'should be a Logger instance' do
|
20
|
+
assert_instance_of(Logger, logger)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'logger device' do
|
25
|
+
it 'is an instance of R7Insight::Host::CONNECTION' do
|
26
|
+
assert_instance_of(R7Insight::Host::CONNECTION, logdev)
|
27
|
+
end
|
28
|
+
it 'local is false' do
|
29
|
+
refute(logdev.local)
|
30
|
+
end
|
31
|
+
it 'ssl is true' do
|
32
|
+
assert(logdev.ssl)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'logger console' do
|
37
|
+
it 'is nil' do
|
38
|
+
assert_nil(logger_console)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'is initialized with :ssl => true' do
|
44
|
+
let(:logger) { R7Insight.new(token, region, ssl: true) }
|
45
|
+
|
46
|
+
describe 'logger device' do
|
47
|
+
it 'ssl is true' do
|
48
|
+
assert(logdev.ssl)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'is initialized with :ssl => false' do
|
54
|
+
let(:logger) { R7Insight.new(token, region, ssl: false) }
|
55
|
+
|
56
|
+
describe 'logger device' do
|
57
|
+
it 'ssl is false' do
|
58
|
+
refute(logdev.ssl)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'logger device local is false' do
|
64
|
+
refute(logdev.local)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'logger console is nil' do
|
68
|
+
assert_nil(logger_console)
|
69
|
+
end
|
70
|
+
|
71
|
+
describe 'local is set to true' do
|
72
|
+
let(:local) { true }
|
73
|
+
|
74
|
+
it 'logger device local is true' do
|
75
|
+
assert(logdev.local)
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'logger console is instance of Logger' do
|
79
|
+
assert_instance_of(Logger, logger_console)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'logger console device instance of IO' do
|
83
|
+
assert_instance_of(IO, logger_console_dev)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe 'and :local => ' do
|
88
|
+
let(:local_test_log) do
|
89
|
+
Pathname.new(File.dirname(__FILE__))
|
90
|
+
.join('fixtures', 'log', 'local_log.log')
|
91
|
+
end
|
92
|
+
let(:local) { log_file }
|
93
|
+
|
94
|
+
describe 'Pathname' do
|
95
|
+
let(:log_file) { local_test_log }
|
96
|
+
|
97
|
+
describe 'logger device' do
|
98
|
+
it 'is an instance of our CONNECTION' do
|
99
|
+
assert_instance_of(R7Insight::Host::CONNECTION, logdev)
|
100
|
+
end
|
101
|
+
it 'local is true' do
|
102
|
+
assert(logdev.local)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe 'logger console' do
|
107
|
+
it 'is an instance of Logger' do
|
108
|
+
assert_instance_of(Logger, logger_console)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe 'logger console device' do
|
113
|
+
it 'is an instance of File' do
|
114
|
+
assert_instance_of(File, logger_console_dev)
|
115
|
+
end
|
116
|
+
it 'path matches specified log file' do
|
117
|
+
assert_match('local_log.log', logger_console_dev.path)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
describe 'path string' do
|
123
|
+
let(:log_file) { local_test_log.to_s }
|
124
|
+
|
125
|
+
describe 'logger device' do
|
126
|
+
it 'is an instance of CONNECTION' do
|
127
|
+
assert_instance_of(R7Insight::Host::CONNECTION, logdev)
|
128
|
+
end
|
129
|
+
it 'local is true' do
|
130
|
+
assert(logdev.local)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe 'logger console' do
|
135
|
+
it 'is an instance of Logger' do
|
136
|
+
assert_instance_of(Logger, logger_console)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
describe 'logger console device' do
|
141
|
+
it 'is an instance of File' do
|
142
|
+
assert_instance_of(File, logger_console_dev)
|
143
|
+
end
|
144
|
+
it 'path matches expected log filename' do
|
145
|
+
assert_match('local_log.log', logger_console_dev.path)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
describe 'File' do
|
151
|
+
let(:log_file) { File.new(local_test_log, 'w') }
|
152
|
+
|
153
|
+
describe 'logger device' do
|
154
|
+
it 'is an instance of CONNECTION' do
|
155
|
+
assert_instance_of(R7Insight::Host::CONNECTION, logdev)
|
156
|
+
end
|
157
|
+
it 'local is true' do
|
158
|
+
assert(logdev.local)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
describe 'logger console' do
|
162
|
+
it 'is an instance of Logger' do
|
163
|
+
assert_instance_of(Logger, logger_console)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
describe 'logger console device' do
|
167
|
+
it 'is an instance of File' do
|
168
|
+
assert_instance_of(File, logger_console_dev)
|
169
|
+
end
|
170
|
+
it 'path matches expected log location' do
|
171
|
+
assert_match('local_log.log', logger_console_dev.path)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
describe 'when Rails environment' do
|
179
|
+
before do
|
180
|
+
class Rails
|
181
|
+
def self.root
|
182
|
+
Pathname.new(File.dirname(__FILE__)).join('fixtures')
|
183
|
+
end
|
184
|
+
|
185
|
+
def self.env
|
186
|
+
'test'
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
after do
|
191
|
+
Object.send(:remove_const, :Rails)
|
192
|
+
end
|
193
|
+
|
194
|
+
it 'ssl is true' do
|
195
|
+
assert(logdev.ssl)
|
196
|
+
end
|
197
|
+
|
198
|
+
it 'local is false' do
|
199
|
+
refute(logdev.local)
|
200
|
+
assert_nil(logger_console)
|
201
|
+
end
|
202
|
+
|
203
|
+
describe 'and :local is true' do
|
204
|
+
let(:local) { true }
|
205
|
+
|
206
|
+
describe 'logger device' do
|
207
|
+
it 'local is true' do
|
208
|
+
assert(logdev.local)
|
209
|
+
end
|
210
|
+
end
|
211
|
+
describe 'logger console' do
|
212
|
+
it 'is an instance of Logger' do
|
213
|
+
assert_instance_of(Logger, logger_console)
|
214
|
+
end
|
215
|
+
end
|
216
|
+
describe 'logger console device' do
|
217
|
+
it 'is an instance of File' do
|
218
|
+
assert_instance_of(File, logger_console_dev)
|
219
|
+
end
|
220
|
+
it 'path matches expected log filename' do
|
221
|
+
assert_match('test.log', logger_console_dev.path)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
describe 'and :local => ' do
|
227
|
+
let(:local_test_log) do
|
228
|
+
Pathname.new(File.dirname(__FILE__))
|
229
|
+
.join('fixtures', 'log', 'local_log.log')
|
230
|
+
end
|
231
|
+
let(:local) { log_file }
|
232
|
+
|
233
|
+
describe 'Pathname' do
|
234
|
+
let(:log_file) { local_test_log }
|
235
|
+
|
236
|
+
describe 'logger device' do
|
237
|
+
it 'is an instance of CONNECTION' do
|
238
|
+
assert_instance_of(R7Insight::Host::CONNECTION, logdev)
|
239
|
+
end
|
240
|
+
it 'local is true' do
|
241
|
+
assert(logdev.local)
|
242
|
+
end
|
243
|
+
end
|
244
|
+
describe 'logger console' do
|
245
|
+
it 'is an instance of Logger' do
|
246
|
+
assert_instance_of(Logger, logger_console)
|
247
|
+
end
|
248
|
+
end
|
249
|
+
describe 'logger console device' do
|
250
|
+
it 'is an instance of File' do
|
251
|
+
assert_instance_of(File, logger_console_dev)
|
252
|
+
end
|
253
|
+
it 'path matches expected log filename' do
|
254
|
+
assert_match('local_log.log', logger_console_dev.path)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
259
|
+
describe 'path string' do
|
260
|
+
let(:log_file) { local_test_log.to_s }
|
261
|
+
|
262
|
+
describe 'logger device' do
|
263
|
+
it 'is an instance of CONNECTION' do
|
264
|
+
assert_instance_of(R7Insight::Host::CONNECTION, logdev)
|
265
|
+
end
|
266
|
+
it 'local is true' do
|
267
|
+
assert(logdev.local)
|
268
|
+
end
|
269
|
+
end
|
270
|
+
describe 'logger console' do
|
271
|
+
it 'is an instance of Logger' do
|
272
|
+
assert_instance_of(Logger, logger_console)
|
273
|
+
end
|
274
|
+
end
|
275
|
+
describe 'logger console device' do
|
276
|
+
it 'is an instance of File' do
|
277
|
+
assert_instance_of(File, logger_console_dev)
|
278
|
+
end
|
279
|
+
it 'path matches expected log filename' do
|
280
|
+
assert_match('local_log.log', logger_console_dev.path)
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
describe 'File' do
|
286
|
+
let(:log_file) { File.new(local_test_log, 'w') }
|
287
|
+
|
288
|
+
describe 'logger device' do
|
289
|
+
it 'is an instance of CONNECTION' do
|
290
|
+
assert_instance_of(R7Insight::Host::CONNECTION, logdev)
|
291
|
+
end
|
292
|
+
it 'local is true' do
|
293
|
+
assert(logdev.local)
|
294
|
+
end
|
295
|
+
end
|
296
|
+
describe 'logger console' do
|
297
|
+
it 'is an instance of Logger' do
|
298
|
+
assert_instance_of(Logger, logger_console)
|
299
|
+
end
|
300
|
+
end
|
301
|
+
describe 'logger console device' do
|
302
|
+
it 'is an instance of File' do
|
303
|
+
assert_instance_of(File, logger_console_dev)
|
304
|
+
end
|
305
|
+
it 'path matches expected log filename' do
|
306
|
+
assert_match('local_log.log', logger_console_dev.path)
|
307
|
+
end
|
308
|
+
end
|
309
|
+
end
|
310
|
+
end
|
311
|
+
end
|
312
|
+
end
|