snoopit 0.0.1
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 +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +39 -0
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/dictionaries/rbirch.xml +9 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/misc.xml +5 -0
- data/.idea/modules.xml +9 -0
- data/.idea/scopes/scope_settings.xml +5 -0
- data/.idea/snoopit.iml +233 -0
- data/.idea/vcs.xml +7 -0
- data/.rspec +2 -0
- data/.travis.yml +7 -0
- data/Gemfile +15 -0
- data/LICENSE.txt +22 -0
- data/README.md +411 -0
- data/Rakefile +1 -0
- data/bin/snoopit +173 -0
- data/lib/snoopit.rb +22 -0
- data/lib/snoopit/detected.rb +50 -0
- data/lib/snoopit/file_info.rb +104 -0
- data/lib/snoopit/file_tracker.rb +83 -0
- data/lib/snoopit/logger.rb +30 -0
- data/lib/snoopit/notification_manager.rb +123 -0
- data/lib/snoopit/notifier.rb +25 -0
- data/lib/snoopit/notifiers/email.rb +61 -0
- data/lib/snoopit/notifiers/http.rb +85 -0
- data/lib/snoopit/notifiers/https.rb +21 -0
- data/lib/snoopit/notifiers/stomp.rb +59 -0
- data/lib/snoopit/register.rb +69 -0
- data/lib/snoopit/sniffer.rb +51 -0
- data/lib/snoopit/snooper.rb +149 -0
- data/lib/snoopit/snoopy.rb +67 -0
- data/lib/snoopit/version.rb +3 -0
- data/snoopit.gemspec +27 -0
- data/spec/bin/snoopit_spec.rb +258 -0
- data/spec/file_info_spec.rb +131 -0
- data/spec/file_tracker_spec.rb +172 -0
- data/spec/notification_manager_spec.rb +103 -0
- data/spec/notifiers/email_spec.rb +36 -0
- data/spec/notifiers/http_spec.rb +37 -0
- data/spec/notifiers/https_spec.rb +38 -0
- data/spec/notifiers/stomp_spec.rb +34 -0
- data/spec/register_spec.rb +105 -0
- data/spec/snooper_spec.rb +538 -0
- data/spec/spec_helper.rb +24 -0
- data/spec/support/log/snoop_log.test +593 -0
- data/spec/support/log/snoop_log_2.test +593 -0
- data/spec/support/multiple_snoopies.json +82 -0
- data/spec/support/regexp_tester.rb +10 -0
- data/spec/support/snoopies.json +93 -0
- data/spec/support/snoopies_notifiers.json +66 -0
- data/spec/support/test_notifier.rb +18 -0
- data/spec/support/test_notifier_load.rb +18 -0
- data/support/snoopies.json +110 -0
- metadata +190 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'awesome_print'
|
3
|
+
|
4
|
+
describe 'HTTPS Notifier' do
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@file = File.expand_path('../../support/snoopies_notifiers.json', __FILE__)
|
8
|
+
@json = IO.read(@file)
|
9
|
+
@json_hash = JSON.parse(@json)
|
10
|
+
@json_hash['notifiers'].delete 'http'
|
11
|
+
@json_hash['notifiers'].delete 'stomp'
|
12
|
+
@json_hash['notifiers'].delete 'email'
|
13
|
+
@snooper = Snooper.new false
|
14
|
+
@nm = NotificationManager.new
|
15
|
+
@snooper.load_snoopers @json_hash
|
16
|
+
@nm.load_notifier_config @json_hash['notifiers']
|
17
|
+
@nm.unregister_by_name 'email'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'http stub notify' do
|
21
|
+
http = @nm.get_notifier 'https'
|
22
|
+
expect(http.name).to eq 'https'
|
23
|
+
snoopies = @snooper.snoop
|
24
|
+
h = @nm.get_notifier 'https'
|
25
|
+
h.stub(:notify)
|
26
|
+
@nm.notify(snoopies)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'http notify', :skip do
|
30
|
+
http = @nm.get_notifier 'https'
|
31
|
+
expect(http.name).to eq 'https'
|
32
|
+
snoopies = @snooper.snoop
|
33
|
+
@nm.notify(snoopies)
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Stomp Notifier' do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@file = File.expand_path('../../support/snoopies_notifiers.json', __FILE__)
|
7
|
+
@json = IO.read(@file)
|
8
|
+
@json_hash = JSON.parse(@json)
|
9
|
+
@snooper = Snooper.new false
|
10
|
+
@nm = NotificationManager.new
|
11
|
+
@json_hash['notifiers'].delete 'http'
|
12
|
+
@json_hash['notifiers'].delete 'https'
|
13
|
+
@json_hash['notifiers'].delete 'email'
|
14
|
+
@snooper.load_snoopers @json_hash
|
15
|
+
@nm.load_notifier_config @json_hash['notifiers']
|
16
|
+
@nm.unregister_by_name 'email'
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'stomp stub notify' do
|
20
|
+
stomp = @nm.get_notifier 'stomp'
|
21
|
+
expect(stomp.name).to eq 'stomp'
|
22
|
+
snoopies = @snooper.snoop
|
23
|
+
h = @nm.get_notifier 'stomp'
|
24
|
+
n = h.stub(:notify)
|
25
|
+
@nm.notify(snoopies)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'stomp notify', :skip do
|
29
|
+
stomp = @nm.get_notifier 'stomp'
|
30
|
+
expect(stomp.name).to eq 'stomp'
|
31
|
+
snoopies = @snooper.snoop
|
32
|
+
@nm.notify(snoopies)
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Register' do
|
4
|
+
|
5
|
+
it 'Register size 4 push_front' do
|
6
|
+
register = Register.new 4
|
7
|
+
register.size.should == 4
|
8
|
+
register.push_front 1
|
9
|
+
register.size.should == 4
|
10
|
+
register[0].should == 1
|
11
|
+
register[1].should == nil
|
12
|
+
register[2].should == nil
|
13
|
+
register[3].should == nil
|
14
|
+
register.push_front 2
|
15
|
+
register.size.should == 4
|
16
|
+
register.push_front 3
|
17
|
+
register.size.should == 4
|
18
|
+
register.push_front 4
|
19
|
+
register.size.should == 4
|
20
|
+
register[0].should == 4
|
21
|
+
register[1].should == 3
|
22
|
+
register[2].should == 2
|
23
|
+
register[3].should == 1
|
24
|
+
register.push_front 5
|
25
|
+
register[0].should == 5
|
26
|
+
register[1].should == 4
|
27
|
+
register[2].should == 3
|
28
|
+
register[3].should == 2
|
29
|
+
register[5].should eq nil
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'Register size 1 push_front' do
|
33
|
+
register = Register.new 1
|
34
|
+
register.size.should == 1
|
35
|
+
register.push_front 1
|
36
|
+
register.size.should == 1
|
37
|
+
register[0].should == 1
|
38
|
+
register.size.should == 1
|
39
|
+
register.push_front 2
|
40
|
+
register.size.should == 1
|
41
|
+
register[0].should == 2
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'Register size 0 push_front' do
|
45
|
+
register = Register.new 0
|
46
|
+
register.size.should == 0
|
47
|
+
register.push_front 1
|
48
|
+
register.size.should == 0
|
49
|
+
register.push_front 'test'
|
50
|
+
register.size.should == 0
|
51
|
+
register[0].should eq nil
|
52
|
+
register[99].should eq nil
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'Register size 4 push_back' do
|
56
|
+
register = Register.new 4
|
57
|
+
register.size.should == 4
|
58
|
+
register.push_back 1
|
59
|
+
register.size.should == 4
|
60
|
+
register[0].should == nil
|
61
|
+
register[1].should == nil
|
62
|
+
register[2].should == nil
|
63
|
+
register[3].should == 1
|
64
|
+
register.push_back 2
|
65
|
+
register.size.should == 4
|
66
|
+
register.push_back 3
|
67
|
+
register.size.should == 4
|
68
|
+
register.push_back 4
|
69
|
+
register.size.should == 4
|
70
|
+
register[0].should == 1
|
71
|
+
register[1].should == 2
|
72
|
+
register[2].should == 3
|
73
|
+
register[3].should == 4
|
74
|
+
register.push_back 5
|
75
|
+
register.size.should == 4
|
76
|
+
register[0].should == 2
|
77
|
+
register[1].should == 3
|
78
|
+
register[2].should == 4
|
79
|
+
register[3].should == 5
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'Register size 0 push_back' do
|
83
|
+
register = Register.new 0
|
84
|
+
register.size.should == 0
|
85
|
+
register.push_back 1
|
86
|
+
register.size.should == 0
|
87
|
+
register.push_back 'test'
|
88
|
+
register.size.should == 0
|
89
|
+
register[0].should eq nil
|
90
|
+
register[99].should eq nil
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'Test Register array assignment' do
|
94
|
+
register = Register.new 5
|
95
|
+
register[0] = 'foo'
|
96
|
+
register[0].should eq 'foo'
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'test enumerable' do
|
100
|
+
rtest = [1,2,3,4,5]
|
101
|
+
register = Register.new 5, rtest
|
102
|
+
register.each_with_index { |r, i| r.should eq rtest[i] }
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
@@ -0,0 +1,538 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Snooper' do
|
4
|
+
|
5
|
+
context 'base functionality' do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
Snoopit.logger.level = ::Logger::DEBUG
|
9
|
+
@file = File.expand_path('../support/snoopies.json', __FILE__)
|
10
|
+
@json = IO.read(@file)
|
11
|
+
@jhash = JSON.parse(@json)
|
12
|
+
@jsnoopy = @jhash['snoopers']['SnoopTest']
|
13
|
+
@jsnoopy2 = @jhash['snoopers']['AppServer2']
|
14
|
+
@snooper = Snooper.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_snooper(snooper)
|
18
|
+
snooper.snoopies.size.should eq 2
|
19
|
+
snoopy = snooper.snoopies['SnoopTest']
|
20
|
+
snoopy.input.should eq @jsnoopy['snoop']
|
21
|
+
snoopy.dir.should eq @jsnoopy['dir']['path']
|
22
|
+
snoopy.glob.should eq @jsnoopy['dir']['glob']
|
23
|
+
snoopy.input_check?.should == true
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'snooper initialization' do
|
27
|
+
|
28
|
+
it 'loads a regexp configuration file and validates input and dir via file' do
|
29
|
+
@snooper.load_file @file
|
30
|
+
test_snooper @snooper
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'loads a regexp configuration and validates input and dir via json string' do
|
34
|
+
@snooper.load_json @json
|
35
|
+
test_snooper @snooper
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'loads a regexp configuration and validates input and dir via array of snoopies' do
|
39
|
+
@snooper.load_snoopers @jhash
|
40
|
+
test_snooper @snooper
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'loads a regexp configuration and with invalid input file' do
|
44
|
+
expect { @snooper.load_file(nil) }.to raise_error ArgumentError
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'loads a regexp configuration and with no snoopies via empty hash' do
|
48
|
+
expect { @snooper.load_snoopers ({ 'snoopers' => [] }) }.to raise_error ArgumentError
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
context 'file tests' do
|
54
|
+
|
55
|
+
before(:each) do
|
56
|
+
@jsnoopy['dir'] = nil
|
57
|
+
@jsnoopy2['dir'] = nil
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'loads a regexp configuration and with invalid input and dir via hash' do
|
61
|
+
@jsnoopy['snoop'] = nil
|
62
|
+
expect { @snooper.load_snoopers @jhash }.to raise_error ArgumentError
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'loads a snoopies json file and sniffs out a log file' do
|
66
|
+
#Snoopit.logger.level = ::Logger::DEBUG
|
67
|
+
@snooper.load_snoopers @jhash
|
68
|
+
@snooper.snoopies.size.should == 2
|
69
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 3
|
70
|
+
@snooper.snoopies['AppServer2'].sniffers.size.should == 1
|
71
|
+
snoopies = @snooper.snoop
|
72
|
+
snoopies.each do |snoopy|
|
73
|
+
snoopy.sniffers.each do |sniffer|
|
74
|
+
if sniffer.regexp.source == 'Non OK Status'
|
75
|
+
sniffer.sniffed.size.should eq 60
|
76
|
+
sniffer.sniffed.each do |sniffed|
|
77
|
+
sniffed.before.size.should eq 2
|
78
|
+
sniffed.after.size.should eq 2
|
79
|
+
end
|
80
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
81
|
+
sniffer.sniffed.size.should eq 1
|
82
|
+
sniffer.sniffed.each do |sniffed|
|
83
|
+
sniffed.before.size.should eq 2
|
84
|
+
sniffed.after.size.should eq 2
|
85
|
+
end
|
86
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
87
|
+
sniffer.sniffed.size.should eq 47
|
88
|
+
sniffer.sniffed.each do |sniffed|
|
89
|
+
sniffed.before.size.should eq 1
|
90
|
+
sniffed.after.size.should eq 1
|
91
|
+
end
|
92
|
+
else
|
93
|
+
# This should not happen
|
94
|
+
true.should eq false
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'loads a snoopies json file and sniffs out a log file zero before zero after' do
|
101
|
+
@jsnoopy['sniffers'].each do |sniffer|
|
102
|
+
sniffer['lines']['before'] = 0
|
103
|
+
sniffer['lines']['after'] = 0
|
104
|
+
end
|
105
|
+
@jsnoopy2['sniffers'].each do |sniffer|
|
106
|
+
sniffer['lines']['before'] = 0
|
107
|
+
sniffer['lines']['after'] = 0
|
108
|
+
end
|
109
|
+
@snooper.load_snoopers @jhash
|
110
|
+
@snooper.snoopies.size.should == 2
|
111
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 3
|
112
|
+
snoopies = @snooper.snoop
|
113
|
+
snoopies.each do |snoopy|
|
114
|
+
snoopy.sniffers.each do |sniffer|
|
115
|
+
if sniffer.regexp.source == 'Non OK Status'
|
116
|
+
sniffer.sniffed.size.should eq 60
|
117
|
+
sniffer.sniffed.each do |sniffed|
|
118
|
+
sniffed.before.size.should eq 0
|
119
|
+
sniffed.after.size.should eq 0
|
120
|
+
end
|
121
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
122
|
+
sniffer.sniffed.size.should eq 1
|
123
|
+
sniffer.sniffed.each do |sniffed|
|
124
|
+
sniffed.before.size.should eq 0
|
125
|
+
sniffed.after.size.should eq 0
|
126
|
+
end
|
127
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
128
|
+
sniffer.sniffed.size.should eq 47
|
129
|
+
sniffer.sniffed.each do |sniffed|
|
130
|
+
sniffed.before.size.should eq 0
|
131
|
+
sniffed.after.size.should eq 0
|
132
|
+
end
|
133
|
+
else
|
134
|
+
# This should not happen
|
135
|
+
true.should eq false
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
|
142
|
+
it 'loads a snoopies json file and sniffs out a log file 0 before 1 after' do
|
143
|
+
@jsnoopy['sniffers'].each do |sniffer|
|
144
|
+
sniffer['lines']['before'] = 0
|
145
|
+
sniffer['lines']['after'] = 1
|
146
|
+
end
|
147
|
+
@jsnoopy2['sniffers'].each do |sniffer|
|
148
|
+
sniffer['lines']['before'] = 0
|
149
|
+
sniffer['lines']['after'] = 1
|
150
|
+
end
|
151
|
+
@snooper.load_snoopers @jhash
|
152
|
+
@snooper.snoopies.size.should == 2
|
153
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 3
|
154
|
+
@snooper.snoopies['AppServer2'].sniffers.size.should == 1
|
155
|
+
snoopies = @snooper.snoop
|
156
|
+
snoopies.each do |snoopy|
|
157
|
+
snoopy.sniffers.each do |sniffer|
|
158
|
+
if sniffer.regexp.source == 'Non OK Status'
|
159
|
+
sniffer.sniffed.size.should eq 60
|
160
|
+
sniffer.sniffed.each do |sniffed|
|
161
|
+
sniffed.before.size.should eq 0
|
162
|
+
sniffed.after.size.should eq 1
|
163
|
+
end
|
164
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
165
|
+
sniffer.sniffed.size.should eq 1
|
166
|
+
sniffer.sniffed.each do |sniffed|
|
167
|
+
sniffed.before.size.should eq 0
|
168
|
+
sniffed.after.size.should eq 1
|
169
|
+
end
|
170
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
171
|
+
sniffer.sniffed.size.should eq 47
|
172
|
+
sniffer.sniffed.each do |sniffed|
|
173
|
+
sniffed.before.size.should eq 0
|
174
|
+
sniffed.after.size.should eq 1
|
175
|
+
end
|
176
|
+
else
|
177
|
+
# This should not happen
|
178
|
+
true.should eq false
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
|
185
|
+
it 'loads a snoopies json file and sniffs out a log file 1 before 0 after' do
|
186
|
+
@jsnoopy['sniffers'].each do |sniffer|
|
187
|
+
sniffer['lines']['before'] = 1
|
188
|
+
sniffer['lines']['after'] = 0
|
189
|
+
end
|
190
|
+
@jsnoopy2['sniffers'].each do |sniffer|
|
191
|
+
sniffer['lines']['before'] = 1
|
192
|
+
sniffer['lines']['after'] = 0
|
193
|
+
end
|
194
|
+
@snooper.load_snoopers @jhash
|
195
|
+
@snooper.snoopies.size.should == 2
|
196
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 3
|
197
|
+
snoopies = @snooper.snoop
|
198
|
+
snoopies.each do |snoopy|
|
199
|
+
snoopy.sniffers.each do |sniffer|
|
200
|
+
if sniffer.regexp.source == 'Non OK Status'
|
201
|
+
sniffer.sniffed.size.should eq 60
|
202
|
+
sniffer.sniffed.each do |sniffed|
|
203
|
+
sniffed.before.size.should eq 1
|
204
|
+
sniffed.after.size.should eq 0
|
205
|
+
end
|
206
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
207
|
+
sniffer.sniffed.size.should eq 1
|
208
|
+
sniffer.sniffed.each do |sniffed|
|
209
|
+
sniffed.before.size.should eq 1
|
210
|
+
sniffed.after.size.should eq 0
|
211
|
+
end
|
212
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
213
|
+
sniffer.sniffed.size.should eq 47
|
214
|
+
sniffer.sniffed.each do |sniffed|
|
215
|
+
sniffed.before.size.should eq 1
|
216
|
+
sniffed.after.size.should eq 0
|
217
|
+
end
|
218
|
+
else
|
219
|
+
# This should not happen
|
220
|
+
true.should eq false
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
it 'Dump trace' do
|
227
|
+
#dump_it
|
228
|
+
end
|
229
|
+
|
230
|
+
def dump_it
|
231
|
+
@snooper.load_snoopers [ @jsnoopy ]
|
232
|
+
#Snoopit.logger.level = ::Logger::DEBUG
|
233
|
+
tracked = @snooper.snoop
|
234
|
+
puts "Number of snoopies with found data: #{tracked.size}"
|
235
|
+
tracked.each do |snoopy|
|
236
|
+
puts "Number of snoopy sniffers with found data: #{snoopy.sniffers.size}"
|
237
|
+
snoopy.sniffers.each do |sniffer|
|
238
|
+
puts "Number of snoopy sniffers with sniffed out data: #{sniffer.sniffed.size}"
|
239
|
+
sniffer.sniffed.each do |sniffed|
|
240
|
+
puts ''
|
241
|
+
sniffed.before.register.each {|b| puts "Before: #{b}" unless b.nil? }
|
242
|
+
puts "Matched: #{sniffed.match}"
|
243
|
+
sniffed.after.register.each {|a| puts "After: #{a}" unless a.nil? }
|
244
|
+
puts "Before register size: #{sniffed.before.register.size}"
|
245
|
+
puts "After register size: #{sniffed.after.register.size}"
|
246
|
+
puts "File: #{sniffed.file}"
|
247
|
+
puts "Line No: #{sniffed.line_no}"
|
248
|
+
puts ''
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
context 'directory testing' do
|
256
|
+
|
257
|
+
before(:each) do
|
258
|
+
#Snoopit.logger.level = ::Logger::DEBUG
|
259
|
+
end
|
260
|
+
|
261
|
+
it 'loads a snoopies json file and sniffs out a directory' do
|
262
|
+
@jsnoopy['dir']['glob'] = nil
|
263
|
+
@snooper.load_snoopers @jhash
|
264
|
+
@snooper.snoopies.size.should == 2
|
265
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 3
|
266
|
+
snoopies = @snooper.snoop
|
267
|
+
snoopies.each do |snoopy|
|
268
|
+
snoopy.sniffers.each do |sniffer|
|
269
|
+
if sniffer.regexp.source == 'Non OK Status'
|
270
|
+
sniffer.sniffed.size.should eq 120
|
271
|
+
sniffer.sniffed.each do |sniffed|
|
272
|
+
sniffed.before.size.should eq 2
|
273
|
+
sniffed.after.size.should eq 2
|
274
|
+
end
|
275
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
276
|
+
sniffer.sniffed.size.should eq 2
|
277
|
+
sniffer.sniffed.each do |sniffed|
|
278
|
+
sniffed.before.size.should eq 2
|
279
|
+
sniffed.after.size.should eq 2
|
280
|
+
end
|
281
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
282
|
+
sniffer.sniffed.size.should eq 94
|
283
|
+
sniffer.sniffed.each do |sniffed|
|
284
|
+
sniffed.before.size.should eq 1
|
285
|
+
sniffed.after.size.should eq 1
|
286
|
+
end
|
287
|
+
else
|
288
|
+
# This should not happen
|
289
|
+
true.should eq false
|
290
|
+
end
|
291
|
+
end
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
it 'loads a snoopies json file and sniffs out a glob directory' do
|
296
|
+
@snooper.load_snoopers @jhash
|
297
|
+
@snooper.snoopies.size.should == 2
|
298
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 3
|
299
|
+
snoopies = @snooper.snoop
|
300
|
+
snoopies.each do |snoopy|
|
301
|
+
snoopy.sniffers.each do |sniffer|
|
302
|
+
if sniffer.regexp.source == 'Non OK Status'
|
303
|
+
sniffer.sniffed.size.should eq 120
|
304
|
+
sniffer.sniffed.each do |sniffed|
|
305
|
+
sniffed.before.size.should eq 2
|
306
|
+
sniffed.after.size.should eq 2
|
307
|
+
end
|
308
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
309
|
+
sniffer.sniffed.size.should eq 2
|
310
|
+
sniffer.sniffed.each do |sniffed|
|
311
|
+
sniffed.before.size.should eq 2
|
312
|
+
sniffed.after.size.should eq 2
|
313
|
+
end
|
314
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
315
|
+
sniffer.sniffed.size.should eq 94
|
316
|
+
sniffer.sniffed.each do |sniffed|
|
317
|
+
sniffed.before.size.should eq 1
|
318
|
+
sniffed.after.size.should eq 1
|
319
|
+
end
|
320
|
+
else
|
321
|
+
# This should not happen
|
322
|
+
true.should eq false
|
323
|
+
end
|
324
|
+
end
|
325
|
+
end
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
context 'notifiers' do
|
330
|
+
|
331
|
+
it 'check notifiers' do
|
332
|
+
@snooper.load_snoopers @jhash
|
333
|
+
snoopies = @snooper.snoop
|
334
|
+
snoopies.each do |snoopy|
|
335
|
+
snoopy.sniffers.each do |sniffer|
|
336
|
+
sniffer.notifiers.size.should eq 1 unless sniffer.notifiers.size == 0
|
337
|
+
sniffer.notifiers.each do |notifier|
|
338
|
+
next if notifier.nil?
|
339
|
+
if sniffer.comment.include? 'Data gathered to generate a statistics report'
|
340
|
+
expect(notifier).to include 'Test Notifier Load'
|
341
|
+
else
|
342
|
+
expect(notifier).to include 'Test Notifier'
|
343
|
+
end
|
344
|
+
end
|
345
|
+
end
|
346
|
+
end
|
347
|
+
end
|
348
|
+
end
|
349
|
+
end
|
350
|
+
|
351
|
+
|
352
|
+
context 'multiple snoopers' do
|
353
|
+
|
354
|
+
before(:each) do
|
355
|
+
@file = File.expand_path('../support/multiple_snoopies.json', __FILE__)
|
356
|
+
@json = IO.read(@file)
|
357
|
+
@jhash = JSON.parse(@json)
|
358
|
+
@jsnoopy = @jhash['snoopers']
|
359
|
+
@snooper = Snooper.new
|
360
|
+
end
|
361
|
+
|
362
|
+
it 'loads a snoopies json file and sniffs out a log file' do
|
363
|
+
@jhash['snoopers'].each do |key, snoop|
|
364
|
+
snoop['dir'] = nil
|
365
|
+
end
|
366
|
+
@snooper.load_snoopers @jhash
|
367
|
+
@snooper.snoopies.size.should == 2
|
368
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 2
|
369
|
+
@snooper.snoopies['SnoopTest2'].sniffers.size.should == 1
|
370
|
+
snoopies = @snooper.snoop
|
371
|
+
@snooper.snoopies.size.should == 2
|
372
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 2
|
373
|
+
@snooper.snoopies['SnoopTest2'].sniffers.size.should == 1
|
374
|
+
process_snoopies = []
|
375
|
+
snoopies.each do |snoopy|
|
376
|
+
process_snoopies << snoopy.name
|
377
|
+
snoopy.sniffers.each do |sniffer|
|
378
|
+
|
379
|
+
if sniffer.regexp.source == 'Non OK Status'
|
380
|
+
sniffer.sniffed.size.should eq 60
|
381
|
+
sniffer.sniffed.each do |sniffed|
|
382
|
+
sniffed.before.size.should eq 2
|
383
|
+
sniffed.after.size.should eq 2
|
384
|
+
end
|
385
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
386
|
+
sniffer.sniffed.size.should eq 1
|
387
|
+
sniffer.sniffed.each do |sniffed|
|
388
|
+
sniffed.before.size.should eq 2
|
389
|
+
sniffed.after.size.should eq 2
|
390
|
+
end
|
391
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
392
|
+
sniffer.sniffed.size.should eq 47
|
393
|
+
sniffer.sniffed.each do |sniffed|
|
394
|
+
sniffed.before.size.should eq 1
|
395
|
+
sniffed.after.size.should eq 1
|
396
|
+
end
|
397
|
+
else
|
398
|
+
# This should not happen
|
399
|
+
true.should eq false
|
400
|
+
end
|
401
|
+
end
|
402
|
+
end
|
403
|
+
expect(process_snoopies).to include 'SnoopTest'
|
404
|
+
expect(process_snoopies).to include 'SnoopTest2'
|
405
|
+
end
|
406
|
+
|
407
|
+
|
408
|
+
it 'loads a snoopies json file and sniffs out a directory of log files' do
|
409
|
+
@snooper.load_snoopers @jhash
|
410
|
+
@snooper.snoopies.size.should == 2
|
411
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 2
|
412
|
+
@snooper.snoopies['SnoopTest2'].sniffers.size.should == 1
|
413
|
+
snoopies = @snooper.snoop
|
414
|
+
@snooper.snoopies.size.should == 2
|
415
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 2
|
416
|
+
@snooper.snoopies['SnoopTest2'].sniffers.size.should == 1
|
417
|
+
process_snoopies = []
|
418
|
+
snoopies.each do |snoopy|
|
419
|
+
process_snoopies << snoopy.name
|
420
|
+
snoopy.sniffers.each do |sniffer|
|
421
|
+
if sniffer.regexp.source == 'Non OK Status'
|
422
|
+
sniffer.sniffed.size.should eq 120
|
423
|
+
sniffer.sniffed.each do |sniffed|
|
424
|
+
sniffed.before.size.should eq 2
|
425
|
+
sniffed.after.size.should eq 2
|
426
|
+
end
|
427
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
428
|
+
sniffer.sniffed.size.should eq 2
|
429
|
+
sniffer.sniffed.each do |sniffed|
|
430
|
+
sniffed.before.size.should eq 2
|
431
|
+
sniffed.after.size.should eq 2
|
432
|
+
end
|
433
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
434
|
+
sniffer.sniffed.size.should eq 94
|
435
|
+
sniffer.sniffed.each do |sniffed|
|
436
|
+
sniffed.before.size.should eq 1
|
437
|
+
sniffed.after.size.should eq 1
|
438
|
+
end
|
439
|
+
else
|
440
|
+
# This should not happen
|
441
|
+
true.should eq false
|
442
|
+
end
|
443
|
+
end
|
444
|
+
end
|
445
|
+
expect(process_snoopies).to include 'SnoopTest'
|
446
|
+
expect(process_snoopies).to include 'SnoopTest2'
|
447
|
+
end
|
448
|
+
|
449
|
+
|
450
|
+
it 'loads a snoopies json file and sniffs out a log file with a specified 1 snooper' do
|
451
|
+
@jhash['snoopers'].each do |key, snoop|
|
452
|
+
snoop['dir'] = nil
|
453
|
+
end
|
454
|
+
@snooper.load_snoopers @jhash
|
455
|
+
@snooper.snoopies.size.should == 2
|
456
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 2
|
457
|
+
@snooper.snoopies['SnoopTest2'].sniffers.size.should == 1
|
458
|
+
snoopies = @snooper.snoop ['SnoopTest']
|
459
|
+
snoopies.size.should == 1
|
460
|
+
snoopies[0].sniffers.size.should == 2
|
461
|
+
process_snoopies = []
|
462
|
+
snoopies.each do |snoopy|
|
463
|
+
process_snoopies << snoopy.name
|
464
|
+
snoopy.sniffers.each do |sniffer|
|
465
|
+
if sniffer.regexp.source == 'Non OK Status'
|
466
|
+
sniffer.sniffed.size.should eq 60
|
467
|
+
sniffer.sniffed.each do |sniffed|
|
468
|
+
sniffed.before.size.should eq 2
|
469
|
+
sniffed.after.size.should eq 2
|
470
|
+
end
|
471
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
472
|
+
sniffer.sniffed.size.should eq 1
|
473
|
+
sniffer.sniffed.each do |sniffed|
|
474
|
+
sniffed.before.size.should eq 2
|
475
|
+
sniffed.after.size.should eq 2
|
476
|
+
end
|
477
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
478
|
+
sniffer.sniffed.size.should eq 47
|
479
|
+
sniffer.sniffed.each do |sniffed|
|
480
|
+
sniffed.before.size.should eq 1
|
481
|
+
sniffed.after.size.should eq 1
|
482
|
+
end
|
483
|
+
else
|
484
|
+
# This should not happen
|
485
|
+
true.should eq false
|
486
|
+
end
|
487
|
+
end
|
488
|
+
end
|
489
|
+
expect(process_snoopies).to include 'SnoopTest'
|
490
|
+
expect(process_snoopies).not_to include 'SnoopTest2'
|
491
|
+
end
|
492
|
+
|
493
|
+
it 'loads a snoopies json file and sniffs out a log file with 2 specified snoopers' do
|
494
|
+
@jhash['snoopers'].each do |key, snoop|
|
495
|
+
snoop['dir'] = nil
|
496
|
+
end
|
497
|
+
@snooper.load_snoopers @jhash
|
498
|
+
@snooper.snoopies.size.should == 2
|
499
|
+
@snooper.snoopies['SnoopTest'].sniffers.size.should == 2
|
500
|
+
@snooper.snoopies['SnoopTest2'].sniffers.size.should == 1
|
501
|
+
snoopies = @snooper.snoop ['SnoopTest', 'SnoopTest2']
|
502
|
+
snoopies.size.should == 2
|
503
|
+
process_snoopies = []
|
504
|
+
snoopies.each do |snoopy|
|
505
|
+
process_snoopies << snoopy.name
|
506
|
+
snoopy.sniffers.each do |sniffer|
|
507
|
+
if sniffer.regexp.source == 'Non OK Status'
|
508
|
+
sniffer.sniffed.size.should eq 60
|
509
|
+
sniffer.sniffed.each do |sniffed|
|
510
|
+
sniffed.before.size.should eq 2
|
511
|
+
sniffed.after.size.should eq 2
|
512
|
+
end
|
513
|
+
elsif sniffer.regexp.source == 'Failed to bulk load'
|
514
|
+
sniffer.sniffed.size.should eq 1
|
515
|
+
sniffer.sniffed.each do |sniffed|
|
516
|
+
sniffed.before.size.should eq 2
|
517
|
+
sniffed.after.size.should eq 2
|
518
|
+
end
|
519
|
+
elsif sniffer.regexp.source == 'Total Number of records:'
|
520
|
+
sniffer.sniffed.size.should eq 47
|
521
|
+
sniffer.sniffed.each do |sniffed|
|
522
|
+
sniffed.before.size.should eq 1
|
523
|
+
sniffed.after.size.should eq 1
|
524
|
+
end
|
525
|
+
else
|
526
|
+
# This should not happen
|
527
|
+
true.should eq false
|
528
|
+
end
|
529
|
+
end
|
530
|
+
end
|
531
|
+
expect(process_snoopies).to include 'SnoopTest'
|
532
|
+
expect(process_snoopies).to include 'SnoopTest2'
|
533
|
+
end
|
534
|
+
|
535
|
+
end
|
536
|
+
|
537
|
+
|
538
|
+
end
|