appstats 0.13.2 → 0.13.3

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- appstats (0.13.2)
4
+ appstats (0.13.3)
5
5
  daemons
6
6
  net-scp
7
7
  rails (>= 2.3.0)
@@ -171,6 +171,12 @@ module Appstats
171
171
  Appstats.log(:info,"About to remove #{all.size} remote file(s) from the processing queue.")
172
172
  all.each do |log_collector|
173
173
  host = log_collector.host
174
+
175
+ if normalized_logins[host].nil?
176
+ Appstats.log(:info," - Missing host login details [#{host}], unable to remove #{log_collector.processed_filename}")
177
+ next
178
+ end
179
+
174
180
  user = normalized_logins[host][:user]
175
181
  password = normalized_logins[host][:password]
176
182
 
@@ -1,3 +1,3 @@
1
1
  module Appstats
2
- VERSION = "0.13.2"
2
+ VERSION = "0.13.3"
3
3
  end
data/spec/entry_spec.rb CHANGED
@@ -193,18 +193,18 @@ module Appstats
193
193
  end
194
194
 
195
195
  it "should understand an entry without contexts" do
196
- entry = Entry.create_from_logger_string("0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
196
+ entry = Entry.create_from_logger_string("0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
197
197
  Entry.count.should == @before_count + 1
198
198
  entry.action.should == "address_search"
199
- entry.raw_entry.should == "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
199
+ entry.raw_entry.should == "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
200
200
  entry.occurred_at.should == Time.parse("2010-09-21 23:15:20")
201
201
  end
202
202
 
203
203
  it "should understand contexts" do
204
- entry = Entry.create_from_logger_string("0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
204
+ entry = Entry.create_from_logger_string("0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
205
205
  Entry.count.should == @before_count + 1
206
206
  entry.action.should == "address_filter"
207
- entry.raw_entry.should == "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
207
+ entry.raw_entry.should == "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
208
208
  entry.occurred_at.should == Time.parse("2010-09-21 23:15:20")
209
209
  entry.contexts.size.should == 2
210
210
  entry.contexts[0].context_key = "app_name"
@@ -214,10 +214,10 @@ module Appstats
214
214
  end
215
215
 
216
216
  it "should handle 'action' as a context" do
217
- entry = Entry.create_from_logger_string('0.13.2 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb')
217
+ entry = Entry.create_from_logger_string('0.13.3 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb')
218
218
  Entry.count.should == @before_count + 1
219
219
  entry.action.should == "page-view"
220
- entry.raw_entry.should == "0.13.2 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb"
220
+ entry.raw_entry.should == "0.13.3 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb"
221
221
  entry.occurred_at.should == Time.parse("2011-02-24 12:59:57")
222
222
  entry.contexts.size.should == 2
223
223
  entry.contexts[0].context_key = "action"
@@ -228,10 +228,10 @@ module Appstats
228
228
  end
229
229
 
230
230
  it "should handle multiple of the same 'context'" do
231
- entry = Entry.create_from_logger_string('0.13.2 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb')
231
+ entry = Entry.create_from_logger_string('0.13.3 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb')
232
232
  Entry.count.should == @before_count + 1
233
233
  entry.action.should == "page-view"
234
- entry.raw_entry.should == "0.13.2 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb"
234
+ entry.raw_entry.should == "0.13.3 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb"
235
235
  entry.occurred_at.should == Time.parse("2011-02-24 12:59:57")
236
236
  entry.contexts.size.should == 2
237
237
  entry.contexts[0].context_key = "app_name"
@@ -12,6 +12,7 @@ module Appstats
12
12
  @login = { :host => "myhost.localnet", :user => "deployer", :password => "pass" }
13
13
  @login2 = { :host => "yourhost.localnet", :user => "deployer", :password => "ssap" }
14
14
  @logins = [@login2, @login]
15
+ @missing_logins = [@login]
15
16
  Appstats::LogCollector.downloaded_log_directory = nil
16
17
  end
17
18
 
@@ -363,6 +364,23 @@ module Appstats
363
364
  Appstats::LogCollector.remove_remote_files(@logins).should == 0
364
365
  end
365
366
 
367
+ it "should log unknown hosts" do
368
+ log1 = LogCollector.create(:status => "processed", :filename => "/my/path/log/mystats_2011-01-02.log", :host => "myhost.localnet")
369
+ log2 = LogCollector.create(:status => "processed", :filename => "/my/path/log/mystats_2011-01-03.log", :host => "yourhost.localnet")
370
+
371
+ ssh = mock(Net::SSH)
372
+ Net::SSH.should_receive(:start).with("myhost.localnet","deployer",{ :password => "pass"}).and_yield(ssh)
373
+ ssh.should_receive(:exec!).with("mv /my/path/log/mystats_2011-01-02.log /my/path/log/__processed__mystats_2011-01-02.log")
374
+
375
+ Appstats.should_receive(:log).with(:info, "About to remove 2 remote file(s) from the processing queue.")
376
+ Appstats.should_receive(:log).with(:info, " - deployer@myhost.localnet:/my/path/log/__processed__mystats_2011-01-02.log")
377
+ Appstats.should_receive(:log).with(:info, " - Missing host login details [yourhost.localnet], unable to remove /my/path/log/__processed__mystats_2011-01-03.log")
378
+ Appstats.should_receive(:log).with(:info, "Removed 1 remote file(s).")
379
+
380
+ Appstats::LogCollector.remove_remote_files(@missing_logins).should == 1
381
+
382
+ end
383
+
366
384
  it "should log all transactions" do
367
385
 
368
386
  log1 = LogCollector.create(:status => "processed", :filename => "/my/path/log/mystats_2011-01-02.log", :host => "myhost.localnet")
data/spec/logger_spec.rb CHANGED
@@ -115,7 +115,7 @@ module Appstats
115
115
 
116
116
  it "should accept numbers" do
117
117
  Appstats::Logger.entry(5, :blah => 6)
118
- Appstats::Logger.raw_read.should == ["0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=5 : blah=6"]
118
+ Appstats::Logger.raw_read.should == ["0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=5 : blah=6"]
119
119
  end
120
120
 
121
121
  end
@@ -124,7 +124,7 @@ module Appstats
124
124
 
125
125
  it "should look similar to regular entry" do
126
126
  Appstats::Logger.exception_entry(RuntimeError.new("blah"),:on => "login")
127
- Appstats::Logger.raw_read.should == ["0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=appstats-exception : error=blah : on=login"]
127
+ Appstats::Logger.raw_read.should == ["0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=appstats-exception : error=blah : on=login"]
128
128
  end
129
129
 
130
130
  end
@@ -141,47 +141,47 @@ module Appstats
141
141
 
142
142
  it "should handle a statistics entry" do
143
143
  expected = { :action => "address_search", :timestamp => "2010-09-21 23:15:20" }
144
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
144
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
145
145
  actual.should == expected
146
146
  end
147
147
 
148
148
  it "should handle contexts" do
149
149
  expected = { :action => "address_filter", :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => 'Market' }
150
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
150
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
151
151
  actual.should == expected
152
152
  end
153
153
 
154
154
  it "should handle multiple actions" do
155
155
  expected = { :action => ["address_filter", "blah"], :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => 'Market' }
156
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : action=blah : app_name=Market : server=Live")
156
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : action=blah : app_name=Market : server=Live")
157
157
  actual.should == expected
158
158
  end
159
159
 
160
160
  it "should handle multiple of same context" do
161
161
  expected = { :action => "address_filter", :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => ['Sin','Market'] }
162
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Sin : app_name=Market : server=Live")
162
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Sin : app_name=Market : server=Live")
163
163
  actual.should == expected
164
164
  end
165
165
 
166
166
  it "should handle no actions" do
167
167
  expected = { :action => "UNKNOWN_ACTION", :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => 'Market' }
168
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 app_name=Market : server=Live")
168
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 app_name=Market : server=Live")
169
169
  actual.should == expected
170
170
  end
171
171
 
172
172
  it "should handle actions with the delimiter (and change the delimiter)" do
173
173
  expected = { :action => "address:=search-n", :timestamp => "2010-09-21 23:15:20" }
174
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n")
174
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n")
175
175
  actual.should == expected
176
176
 
177
177
  expected = { :action => "address::search==--n", :timestamp => "2010-09-21 23:15:20" }
178
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n")
178
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n")
179
179
  actual.should == expected
180
180
  end
181
181
 
182
182
  it "should handle contexts with the delimiter (and change the delimiter)" do
183
183
  expected = { :action => "address", :timestamp => "2010-09-21 23:15:20", :server => "market:eval=-n" }
184
- actual = Appstats::Logger.entry_to_hash("0.13.2 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n")
184
+ actual = Appstats::Logger.entry_to_hash("0.13.3 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n")
185
185
  actual.should == expected
186
186
  end
187
187
 
@@ -190,66 +190,66 @@ module Appstats
190
190
  describe "#entry_to_s" do
191
191
 
192
192
  it "should handle a statistics entry" do
193
- expected = "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
193
+ expected = "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
194
194
  actual = Appstats::Logger.entry_to_s("address_search")
195
195
  actual.should == expected
196
196
  end
197
197
 
198
198
  it "should handle numbers" do
199
- expected = "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=1 : note=2.2"
199
+ expected = "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=1 : note=2.2"
200
200
  actual = Appstats::Logger.entry_to_s(1,:note => 2.2)
201
201
  actual.should == expected
202
202
  end
203
203
 
204
204
  it "should handle default contexts" do
205
205
  Appstats::Logger.default_contexts[:app_name] = "market"
206
- expected = "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : app_name=market"
206
+ expected = "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : app_name=market"
207
207
  actual = Appstats::Logger.entry_to_s("address_search")
208
208
  actual.should == expected
209
209
  end
210
210
 
211
211
  it "should handle contexts (and sort them by symbol)" do
212
- expected = "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
212
+ expected = "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
213
213
  actual = Appstats::Logger.entry_to_s("address_filter", { :server => "Live", :app_name => 'Market' })
214
214
  actual.should == expected
215
215
  end
216
216
 
217
217
  it "should handle actions with the delimiter (and change the delimiter)" do
218
- expected = "0.13.2 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n"
218
+ expected = "0.13.3 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n"
219
219
  actual = Appstats::Logger.entry_to_s("address:=search-n")
220
220
  actual.should == expected
221
221
 
222
- expected = "0.13.2 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n"
222
+ expected = "0.13.3 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n"
223
223
  actual = Appstats::Logger.entry_to_s("address::search==--n")
224
224
  actual.should == expected
225
225
  end
226
226
 
227
227
  it "should handle contexts with the delimiter (and change the delimiter)" do
228
- expected = "0.13.2 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n"
228
+ expected = "0.13.3 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n"
229
229
  actual = Appstats::Logger.entry_to_s("address", :server => 'market:eval=-n')
230
230
  actual.should == expected
231
231
  end
232
232
 
233
233
  it "should ignore spaces" do
234
- expected = "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address search"
234
+ expected = "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address search"
235
235
  actual = Appstats::Logger.entry_to_s("address search")
236
236
  actual.should == expected
237
237
  end
238
238
 
239
239
  it "should convert newlines in action" do
240
- expected = "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_-nsearch"
240
+ expected = "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_-nsearch"
241
241
  actual = Appstats::Logger.entry_to_s("address_\nsearch")
242
242
  actual.should == expected
243
243
  end
244
244
 
245
245
  it "should convert newlines in context" do
246
- expected = "0.13.2 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : blah=some-nlong-nstatement"
246
+ expected = "0.13.3 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : blah=some-nlong-nstatement"
247
247
  actual = Appstats::Logger.entry_to_s("address_search",:blah => "some\nlong\nstatement")
248
248
  actual.should == expected
249
249
  end
250
250
 
251
251
  it "should convert newlines based on the delimiter" do
252
- expected = "0.13.2 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=--nsearch-n"
252
+ expected = "0.13.3 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=--nsearch-n"
253
253
  actual = Appstats::Logger.entry_to_s("address:=\nsearch-n")
254
254
  actual.should == expected
255
255
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appstats
3
3
  version: !ruby/object:Gem::Version
4
- hash: 47
4
+ hash: 45
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 13
9
- - 2
10
- version: 0.13.2
9
+ - 3
10
+ version: 0.13.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrew Forward