sms-logparser 0.0.3 → 0.0.4
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/Gemfile +1 -1
- data/Rakefile +10 -1
- data/lib/sms-logparser/cli.rb +4 -1
- data/lib/sms-logparser/version.rb +1 -1
- data/spec/logparser_spec.rb +54 -0
- data/spec/spec_helper.rb +71 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51e05056b98cf58379c37b19df329c948e2b8656
|
4
|
+
data.tar.gz: bc696cef467afb68d9ee9b18e281ea8aa6b497b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86d201529f5ac57d50082fb992d815e1969ae2a8dac652c11a017b27b0f8410a107b694829d55b9d5a3118d6ee5dac82797ee9d64132d87bc7067006f51aa0ae
|
7
|
+
data.tar.gz: 808350b006292eae603d3a12a2274ff080640c65a65052e9b22f9797ad97ce222b548e6d0f6558f12dc707485ac9f148e6ee5be627b75290ede18ef67b6ee3b9
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/lib/sms-logparser/cli.rb
CHANGED
@@ -23,6 +23,7 @@ module SmsLogparser
|
|
23
23
|
option :api_base_path, :default => 'http://dev.simplex.tv/creator/rest'
|
24
24
|
option :simulate, :type => :boolean, :default => false
|
25
25
|
def parse
|
26
|
+
start_time = Time.now
|
26
27
|
count = 0
|
27
28
|
last_id = get_last_parse_id
|
28
29
|
begin
|
@@ -63,7 +64,9 @@ module SmsLogparser
|
|
63
64
|
last_id = result['ID']
|
64
65
|
end
|
65
66
|
write_parse_result(last_id, count) unless options[:simulate]
|
66
|
-
puts "
|
67
|
+
puts "Started: #{start_time.strftime('%d.%d.%Y %T')}"
|
68
|
+
puts "Runtime: #{(Time.now - start_time).round(2)}s"
|
69
|
+
puts "Matches: #{count}"
|
67
70
|
end
|
68
71
|
|
69
72
|
desc "last_runs", "List the last paser runs"
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SmsLogparser do
|
4
|
+
before do
|
5
|
+
TestHelper.create_test_db
|
6
|
+
TestHelper.create_sylog_db_table
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
TestHelper.drop_test_db
|
11
|
+
end
|
12
|
+
|
13
|
+
it "can create the parser_runs database table" do
|
14
|
+
out, err = capture_io do
|
15
|
+
TestHelper.sms_logparser.create_parser_table
|
16
|
+
end
|
17
|
+
out.must_match /OK/
|
18
|
+
end
|
19
|
+
|
20
|
+
it "can parse a log database and find matches" do
|
21
|
+
TestHelper.seed_db(10)
|
22
|
+
parser = TestHelper.sms_logparser
|
23
|
+
parser.options[:api_base_path] = 'http://devnull-as-a-service.com/dev/null/'
|
24
|
+
out, err = capture_io do
|
25
|
+
TestHelper.sms_logparser.create_parser_table
|
26
|
+
parser.parse
|
27
|
+
end
|
28
|
+
out.must_match /.*Matches: 10$/
|
29
|
+
end
|
30
|
+
|
31
|
+
it "skips over already parsed logs" do
|
32
|
+
TestHelper.seed_db(1)
|
33
|
+
parser = TestHelper.sms_logparser
|
34
|
+
parser.options[:api_base_path] = 'http://devnull-as-a-service.com/dev/null/'
|
35
|
+
out, err = capture_io do
|
36
|
+
TestHelper.sms_logparser.create_parser_table
|
37
|
+
parser.parse
|
38
|
+
parser.parse
|
39
|
+
end
|
40
|
+
out.must_match /.*Matches: 0$/
|
41
|
+
end
|
42
|
+
|
43
|
+
it "list parser runs" do
|
44
|
+
TestHelper.seed_db(1)
|
45
|
+
parser = TestHelper.sms_logparser
|
46
|
+
parser.options[:api_base_path] = 'http://devnull-as-a-service.com/dev/null/'
|
47
|
+
out, err = capture_io do
|
48
|
+
TestHelper.sms_logparser.create_parser_table
|
49
|
+
parser.parse
|
50
|
+
parser.last_runs
|
51
|
+
end
|
52
|
+
assert_equal(err, "")
|
53
|
+
end
|
54
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'minitest/spec'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'minitest/pride'
|
4
|
+
|
5
|
+
require 'sms-logparser'
|
6
|
+
|
7
|
+
module TestHelper
|
8
|
+
|
9
|
+
@@mysql_db = 'syslog_test'
|
10
|
+
@@mysql_user = 'root'
|
11
|
+
@@sql_connection = nil
|
12
|
+
|
13
|
+
def self.sms_logparser(options = {:mysql_db => @@mysql_db, :mysql_user => @@mysql_user})
|
14
|
+
cli = SmsLogparser::Cli.new
|
15
|
+
cli.options = options
|
16
|
+
cli
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.client
|
20
|
+
@@sql_connection ||= Mysql2::Client.new(:host => 'localhost', :username => @@mysql_user)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.create_test_db
|
24
|
+
self.drop_test_db
|
25
|
+
self.client.query("CREATE DATABASE #{@@mysql_db}")
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.drop_test_db
|
29
|
+
self.client.query("DROP DATABASE IF EXISTS #{@@mysql_db}")
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.create_sylog_db_table
|
33
|
+
self.client.query(
|
34
|
+
"CREATE TABLE IF NOT EXISTS\
|
35
|
+
#{@@mysql_db}.SystemEvents(\
|
36
|
+
ID INT PRIMARY KEY AUTO_INCREMENT,\
|
37
|
+
FromHost varchar(128) DEFAULT '',\
|
38
|
+
Message varchar(256) DEFAULT ''
|
39
|
+
)"
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.insert_logs(host = "pcache", message = "", number_of_inserts = 1)
|
44
|
+
values = ''
|
45
|
+
number_of_inserts.times do
|
46
|
+
values += "('#{host}', '#{message}'), "
|
47
|
+
end
|
48
|
+
self.client.query(
|
49
|
+
"INSERT INTO #{@@mysql_db}.SystemEvents(FromHost, Message)\
|
50
|
+
VALUES #{values.chomp(', ')}"
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.seed_db(number_of_inserts = 10)
|
55
|
+
self.insert_logs(
|
56
|
+
"blahost",
|
57
|
+
"GET /boring/stuff/uninteresting - Firefox - 500 GET",
|
58
|
+
number_of_inserts
|
59
|
+
)
|
60
|
+
self.insert_logs(
|
61
|
+
"pcache",
|
62
|
+
'- - [25/Feb/2014:17:28:57 +0100] \"GET /content/2/719/54986/simvid_1.f4v HTTP/1.1\" 200 6741309 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:27.0) Gecko/20100101 Firefox/27.0\"',
|
63
|
+
number_of_inserts
|
64
|
+
)
|
65
|
+
self.insert_logs(
|
66
|
+
"pcache",
|
67
|
+
'- - [25/Feb/2014:17:28:57 +0100] \"GET /notcontent/2/719/54986/simvid_1.f4v HTTP/1.1\" 200 6741309 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:27.0) Gecko/20100101 Firefox/27.0\"',
|
68
|
+
number_of_inserts
|
69
|
+
)
|
70
|
+
end
|
71
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sms-logparser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- niwo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -98,6 +98,8 @@ files:
|
|
98
98
|
- lib/sms-logparser/cli.rb
|
99
99
|
- lib/sms-logparser/version.rb
|
100
100
|
- sms-logparser.gemspec
|
101
|
+
- spec/logparser_spec.rb
|
102
|
+
- spec/spec_helper.rb
|
101
103
|
homepage: https://github.com/swisstxt/sms-logparser
|
102
104
|
licenses:
|
103
105
|
- MIT
|
@@ -122,4 +124,6 @@ rubygems_version: 2.0.3
|
|
122
124
|
signing_key:
|
123
125
|
specification_version: 4
|
124
126
|
summary: SMS Logparser
|
125
|
-
test_files:
|
127
|
+
test_files:
|
128
|
+
- spec/logparser_spec.rb
|
129
|
+
- spec/spec_helper.rb
|