gri 10.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 +7 -0
- data/.gitignore +7 -0
- data/MIT-LICENSE.txt +20 -0
- data/README.md +132 -0
- data/Rakefile +5 -0
- data/bin/grapher +17 -0
- data/bin/gri +5 -0
- data/bin/gricast +17 -0
- data/bin/grispark +5 -0
- data/bin/griwalk +9 -0
- data/bin/trad +19 -0
- data/bin/trad-http +17 -0
- data/gri.gemspec +21 -0
- data/lib/fluent/plugin/out_gri.rb +56 -0
- data/lib/gri/api.rb +28 -0
- data/lib/gri/app_collector.rb +154 -0
- data/lib/gri/app_walker.rb +23 -0
- data/lib/gri/blank.rb +49 -0
- data/lib/gri/builtindefs.rb +211 -0
- data/lib/gri/cast.rb +84 -0
- data/lib/gri/cgraph.rb +37 -0
- data/lib/gri/clist.rb +163 -0
- data/lib/gri/collector.rb +284 -0
- data/lib/gri/config.rb +134 -0
- data/lib/gri/ds_list.rb +166 -0
- data/lib/gri/format_helper.rb +112 -0
- data/lib/gri/gparams.rb +43 -0
- data/lib/gri/graph.rb +239 -0
- data/lib/gri/grapher.rb +70 -0
- data/lib/gri/ldb.rb +160 -0
- data/lib/gri/list.rb +242 -0
- data/lib/gri/log.rb +140 -0
- data/lib/gri/loop.rb +109 -0
- data/lib/gri/ltsv.rb +58 -0
- data/lib/gri/main.rb +107 -0
- data/lib/gri/mlog.rb +22 -0
- data/lib/gri/mmsgpack.rb +57 -0
- data/lib/gri/msnmp.rb +601 -0
- data/lib/gri/page.rb +235 -0
- data/lib/gri/pcollector.rb +209 -0
- data/lib/gri/plugin.rb +75 -0
- data/lib/gri/plugin/bootstrap.rb +65 -0
- data/lib/gri/plugin/cisco.rb +98 -0
- data/lib/gri/plugin/exec_collector.rb +89 -0
- data/lib/gri/plugin/juniper.rb +5 -0
- data/lib/gri/plugin/netsnmp.rb +8 -0
- data/lib/gri/plugin/ucdavis.rb +176 -0
- data/lib/gri/plugin/writer_fluentd.rb +26 -0
- data/lib/gri/polling_unit.rb +88 -0
- data/lib/gri/q.rb +5 -0
- data/lib/gri/request.rb +29 -0
- data/lib/gri/rrd.rb +438 -0
- data/lib/gri/scheduler.rb +68 -0
- data/lib/gri/sgraph.rb +147 -0
- data/lib/gri/spark.rb +94 -0
- data/lib/gri/tra_collector.rb +80 -0
- data/lib/gri/trad.rb +170 -0
- data/lib/gri/updater.rb +201 -0
- data/lib/gri/util_daemon.rb +19 -0
- data/lib/gri/util_marshal.rb +13 -0
- data/lib/gri/utils.rb +63 -0
- data/lib/gri/vendor.rb +76 -0
- data/lib/gri/version.rb +3 -0
- data/lib/gri/wmain.rb +67 -0
- data/lib/gri/writer.rb +184 -0
- data/mcollector +47 -0
- data/test/mock.rb +60 -0
- data/test/root/gra/.sysdb/sysdb.txt +3 -0
- data/test/root/gra/testhost/.records.txt +2 -0
- data/test/root/if.def +2 -0
- data/test/root/test.conf +4 -0
- data/test/root/testtab +9 -0
- data/test/root/testtab2 +2 -0
- data/test/root/tra/testhost/_/20130614 +20 -0
- data/test/test_app.rb +58 -0
- data/test/test_builtindefs.rb +24 -0
- data/test/test_collector.rb +58 -0
- data/test/test_config.rb +62 -0
- data/test/test_ds_list.rb +48 -0
- data/test/test_exec_collector.rb +33 -0
- data/test/test_format_helper.rb +68 -0
- data/test/test_graph.rb +69 -0
- data/test/test_ldb.rb +29 -0
- data/test/test_list.rb +65 -0
- data/test/test_log.rb +16 -0
- data/test/test_loop.rb +35 -0
- data/test/test_ltsv.rb +38 -0
- data/test/test_main.rb +19 -0
- data/test/test_mmsgpack.rb +27 -0
- data/test/test_msnmp.rb +147 -0
- data/test/test_page.rb +51 -0
- data/test/test_pcollector.rb +71 -0
- data/test/test_plugin.rb +62 -0
- data/test/test_plugin_cisco.rb +23 -0
- data/test/test_polling_unit.rb +58 -0
- data/test/test_request.rb +26 -0
- data/test/test_rrd.rb +53 -0
- data/test/test_rrd_updater.rb +139 -0
- data/test/test_scheduler.rb +31 -0
- data/test/test_tra_collector.rb +40 -0
- data/test/test_trad.rb +33 -0
- data/test/test_util_marshal.rb +17 -0
- data/test/test_utils.rb +15 -0
- data/test/test_vendor.rb +40 -0
- data/test/test_writer.rb +33 -0
- data/test/unittest_helper.rb +27 -0
- metadata +208 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'rack'
|
4
|
+
require 'gri/request'
|
5
|
+
|
6
|
+
module GRI
|
7
|
+
|
8
|
+
class TestRequest < Test::Unit::TestCase
|
9
|
+
def test_request
|
10
|
+
env = Rack::MockRequest.env_for '/?r=1&r=2'
|
11
|
+
req = GRI::Request.new env
|
12
|
+
ae({'r'=>'2'}, req.params)
|
13
|
+
ae ['1', '2'], req.gparams.getvar('r')
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_request_parse_query
|
17
|
+
s = 'r=192.168.0.1__GigabitEthernet1-2&stime=-108000&z=&tz=&y=&g=0'
|
18
|
+
res = Rack::Utils.parse_query s
|
19
|
+
ae '192.168.0.1__GigabitEthernet1-2', res['r']
|
20
|
+
ae '-108000', res['stime']
|
21
|
+
ae '', res['z']
|
22
|
+
ae '0', res['g']
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/test/test_rrd.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'gri/rrd'
|
4
|
+
|
5
|
+
class TestRRD < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
@test_dir = File.expand_path(File.dirname(__FILE__))
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_test_rrd path
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_rrd_version
|
15
|
+
rrd = RRD.new
|
16
|
+
assert_match /\A1\.\d\z/, rrd.version
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_remove_base_dir
|
20
|
+
args = 'foo', 'bar', '/usr/local/gri/gra/host/host.rrd'
|
21
|
+
rrd = RRD.new nil, nil
|
22
|
+
res = rrd.remove_base_dir *args
|
23
|
+
ae args, res
|
24
|
+
base_dir = '/usr/local/gri/gra'
|
25
|
+
rrd = RRD.new nil, base_dir
|
26
|
+
res = rrd.remove_base_dir *args
|
27
|
+
ae 'host/host.rrd', res[2]
|
28
|
+
base_dir = '/usr/local/gri/gra'
|
29
|
+
rrd = RRD.new nil, base_dir
|
30
|
+
res = rrd.remove_base_dir *args
|
31
|
+
ae 'host/host.rrd', res[2]
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_rrd_create_and_graph
|
35
|
+
s = Time.local(2012,12,19,9)
|
36
|
+
rrd_path = '/var/tmp/test.rrd'
|
37
|
+
File.unlink rrd_path rescue nil
|
38
|
+
rrd = RRD.new
|
39
|
+
rrd.set_create_args rrd_path, s - 300, 300,
|
40
|
+
'DS:number:GAUGE:600:U:U RRA:MAX:0.5:1:1000'
|
41
|
+
s.to_i.step((s+24*3600).to_i, 300) {|i|
|
42
|
+
rrd.buffered_update "#{i}:#{i%3600/300}"
|
43
|
+
}
|
44
|
+
rrd.flush_buffer
|
45
|
+
|
46
|
+
stime = Time.local(2012,12,19,9,0)
|
47
|
+
etime = Time.local(2012,12,20,9,0)
|
48
|
+
img = rrd.graphgen stime, etime,
|
49
|
+
["DEF:number=#{rrd_path}:number:MAX", "LINE1:number#ff0000:id"]
|
50
|
+
open('/var/tmp/test.png', 'w') {|f| f.write img}
|
51
|
+
assert(img.size > 0)
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
require 'gri/updater'
|
5
|
+
require 'gri/utils'
|
6
|
+
|
7
|
+
module GRI
|
8
|
+
|
9
|
+
class TestRRDUpdater < Test::Unit::TestCase
|
10
|
+
class MockRRD
|
11
|
+
attr_accessor :daemon
|
12
|
+
attr_reader :init_args, :updates
|
13
|
+
|
14
|
+
def initialize *args
|
15
|
+
@init_args = args
|
16
|
+
@updates = []
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_create_args *args
|
20
|
+
@rrdname = args.shift
|
21
|
+
@args = args
|
22
|
+
end
|
23
|
+
|
24
|
+
def buffered_update s
|
25
|
+
@updates.push s
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def setup
|
30
|
+
Config.init
|
31
|
+
@tmp_dir = File.expand_path(File.dirname(__FILE__) + '/.t')
|
32
|
+
Dir.mkdir @tmp_dir unless File.directory? @tmp_dir
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_updater_get_tag_ary
|
36
|
+
Config['tag-rule'] = '/^((AA\d+)\s+\S+)/ aa $2.downcase $2'
|
37
|
+
Config['tag-rule'] = '/^((BB\d+)\s+\S+)/ bb $2.downcase $2'
|
38
|
+
res = Updater.get_tag_ary 'BB01 aaa'
|
39
|
+
ae 'bb01', res[0][1]
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_updater_mk_rra_args
|
43
|
+
updater = GRI::RRDUpdater.new :data_name=>''
|
44
|
+
res = updater.mk_rra_args
|
45
|
+
ae ["RRA:AVERAGE:0.5:12:9000", "RRA:MAX:0.5:1:20000",
|
46
|
+
"RRA:MAX:0.5:12:9000", "RRA:MAX:0.5:144:2000"], res
|
47
|
+
Config['rra-max'] = '300 9999'
|
48
|
+
res = updater.mk_rra_args
|
49
|
+
ae ["RRA:MAX:0.5:300:9999"], res
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_update_sysdb
|
53
|
+
path = "/tmp/.sysdb/sysdb.txt"
|
54
|
+
FileUtils.rm_r File.dirname(path), :force=>true
|
55
|
+
FileUtils.mkdir_p File.dirname(path)
|
56
|
+
|
57
|
+
sysdb = {}
|
58
|
+
Utils.update_ltsv_file path, '_host', sysdb
|
59
|
+
ae 0, File.size(path)
|
60
|
+
sysdb = {'host1'=>{'sysDescr'=>'Linux', '_host'=>'host1'}}
|
61
|
+
Utils.update_ltsv_file path, '_host', sysdb
|
62
|
+
sysdb = {'host2'=>{'sysDescr'=>'FreeBSD', '_host'=>'host2'}}
|
63
|
+
Utils.update_ltsv_file path, '_host', sysdb
|
64
|
+
FileUtils.rm_r File.dirname(path), :force=>true
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_updater_create
|
68
|
+
data_name = 'num'
|
69
|
+
updater = GRI::RRDUpdater.new :data_name=>data_name
|
70
|
+
ds_specs = GRI::DEFS.get_specs(data_name)[:ds]
|
71
|
+
now_i = Time.now.to_i
|
72
|
+
time = now_i - now_i % 300
|
73
|
+
rrd = updater.create_rrd '/tmp/foo.rrd', time, 300, ds_specs, nil
|
74
|
+
assert_kind_of RRD, rrd
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_updater_mk_ds_args
|
78
|
+
data_name = ''
|
79
|
+
updater = RRDUpdater.new :data_name=>data_name
|
80
|
+
specs = DEFS.get_specs data_name
|
81
|
+
ds_specs = specs[:ds]
|
82
|
+
ae 'ifInOctets,inoctet,DERIVE,MAX,AREA,#90f090,in,8', ds_specs.first
|
83
|
+
ds_args, record_keys = updater.mk_ds_args ds_specs, 300
|
84
|
+
ae 'DS:inoctet:DERIVE:750:U:U', ds_args.first
|
85
|
+
ae 'ifInOctets', record_keys.first
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_updater_update1
|
89
|
+
dir = @tmp_dir
|
90
|
+
basename = 'foo_num_test'
|
91
|
+
rrd_path = "#{dir}/#{basename}.rrd"
|
92
|
+
File.unlink rrd_path rescue nil
|
93
|
+
data_name = 'num'
|
94
|
+
updater = GRI::RRDUpdater.new :data_name=>data_name,
|
95
|
+
:dir=>@tmp_dir, :host=>'foo', :index=>'test'
|
96
|
+
|
97
|
+
# mk_update_str
|
98
|
+
s = updater.mk_update_str [1, 2, 3, 4]
|
99
|
+
ae '1:2:3:4', s
|
100
|
+
s = updater.mk_update_str [1, 2, nil, 4]
|
101
|
+
ae '1:2:U:4', s
|
102
|
+
s = updater.mk_update_str [1, 'notnum', nil, 4]
|
103
|
+
ae '1:U:U:4', s
|
104
|
+
|
105
|
+
# update
|
106
|
+
time = Time.now.to_i
|
107
|
+
updater.update time, :number=>10
|
108
|
+
updater.close
|
109
|
+
assert File.exist?(rrd_path)
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_updater_update2
|
113
|
+
updater = RRDUpdater.new :data_name=>'', :dir=>'/var/tmp',
|
114
|
+
:host=>'testhost', :index=>'eth0'
|
115
|
+
updater.rrd_class = MockRRD
|
116
|
+
time = Time.local(2013,4,1).to_i
|
117
|
+
record = {'ifDescr'=>'eth0', 'ifInOctets'=>10, 'ifOutOctets'=>20,
|
118
|
+
'ifInErrors'=>1, 'ifOutErrors'=>0, 'ifOperStatus'=>1, 'ifSpeed'=>1}
|
119
|
+
updater.update time, record
|
120
|
+
ae '1364742000:10:20:U:U:1:0:U:U:U:U', updater.rrd.updates.first
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_update_records_file
|
124
|
+
test_dir = File.expand_path(File.dirname(__FILE__))
|
125
|
+
org_path = test_dir + '/root/gra/testhost/.records.txt'
|
126
|
+
path = '/var/tmp/.records.txt'
|
127
|
+
FileUtils.cp org_path, path
|
128
|
+
|
129
|
+
h = {'new'=>{'_key'=>'new', 'a'=>1}}
|
130
|
+
Utils.update_ltsv_file path, '_key', h
|
131
|
+
|
132
|
+
rs = GRI::Utils.load_records File.dirname(path)
|
133
|
+
ae '1', rs['new']['a']
|
134
|
+
|
135
|
+
File.unlink path
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'socket'
|
4
|
+
require 'mock'
|
5
|
+
require 'gri/log'
|
6
|
+
require 'gri/scheduler'
|
7
|
+
require 'gri/collector'
|
8
|
+
|
9
|
+
module GRI
|
10
|
+
|
11
|
+
class MockCollector < Collector
|
12
|
+
TYPES['mock'] = self
|
13
|
+
end
|
14
|
+
|
15
|
+
class TestScheduler < Test::Unit::TestCase
|
16
|
+
def setup
|
17
|
+
loop = MockLoop.new
|
18
|
+
metrics = Hash.new 0
|
19
|
+
@scheduler = Scheduler.new loop, metrics
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_scheduler_process1
|
23
|
+
options = {}
|
24
|
+
metrics = @scheduler.instance_eval {@metrics}
|
25
|
+
ae 0, metrics[:run_count]
|
26
|
+
@scheduler.process1 'mock', 'testhost', options
|
27
|
+
ae 1, metrics[:run_count]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'mock'
|
4
|
+
require 'gri/tra_collector'
|
5
|
+
|
6
|
+
module GRI
|
7
|
+
|
8
|
+
class MockWriter
|
9
|
+
attr_reader :record_count
|
10
|
+
def initialize
|
11
|
+
@record_count = 0
|
12
|
+
end
|
13
|
+
|
14
|
+
def write records
|
15
|
+
@record_count += records.size
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class TestTraCollector < Test::Unit::TestCase
|
20
|
+
def setup
|
21
|
+
@root_dir = File.dirname(__FILE__) + '/root'
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_tra_collector
|
25
|
+
config = {}
|
26
|
+
writer = MockWriter.new
|
27
|
+
collector = Collector.create('tra', 'testhost', {}) {|records|
|
28
|
+
writer.write records
|
29
|
+
}
|
30
|
+
dir = @root_dir + '/gra/testhost'
|
31
|
+
Dir.glob(dir + '/.lu_*') {|path| File.unlink path}
|
32
|
+
db = LocalLDB.new "#{@root_dir}/tra/testhost"
|
33
|
+
options = {}
|
34
|
+
ae 0, writer.record_count
|
35
|
+
collector.update_rrd_dir dir, db, options
|
36
|
+
ae 20, writer.record_count
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
data/test/test_trad.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'rack'
|
4
|
+
require 'gri/trad'
|
5
|
+
|
6
|
+
module GRI
|
7
|
+
|
8
|
+
class TestTrad < Test::Unit::TestCase
|
9
|
+
def setup
|
10
|
+
Config.init
|
11
|
+
test_root = File.expand_path(File.dirname(__FILE__) + '/root')
|
12
|
+
Config['tra-dir'] = test_root + '/tra'
|
13
|
+
Config['gritab-path'] = test_root + '/testtab'
|
14
|
+
@trad = Trad.new
|
15
|
+
Rack::MockRequest::DEFAULT_ENV['REMOTE_ADDR'] = '127.0.0.1'
|
16
|
+
@app = Rack::MockRequest.new @trad
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_trad_get
|
20
|
+
res = @app.get '/get?h=testhost&s=&t=1371178800'
|
21
|
+
ae 200, res.status
|
22
|
+
a = res.body.scan(/ifInOctets:(\d+)/)
|
23
|
+
ae a.first.first, '27497623151'
|
24
|
+
ae a.last.first, '27498895868'
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_trad_gritab
|
28
|
+
res = @app.get '/gritab'
|
29
|
+
assert_match /\Alocalhost\s/, res.body.split(/\n/).first
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'gri/util_marshal'
|
4
|
+
|
5
|
+
module GRI
|
6
|
+
|
7
|
+
class TestUtilMarshal < Test::Unit::TestCase
|
8
|
+
def test_util_marshal
|
9
|
+
obj = {'a'=>10, :a=>[nil, 1, 2]}
|
10
|
+
path = '/tmp/test.dump'
|
11
|
+
Marshal.dump_to_file obj, path
|
12
|
+
newobj = Marshal.load_from_file path
|
13
|
+
ae obj, newobj
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/test/test_utils.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'gri/utils'
|
4
|
+
|
5
|
+
module GRI
|
6
|
+
|
7
|
+
class TestUtils < Test::Unit::TestCase
|
8
|
+
def test_key_encode
|
9
|
+
s = '1/1'
|
10
|
+
r = GRI::Utils.key_encode s
|
11
|
+
ae '1-1', r
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
data/test/test_vendor.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'gri/builtindefs'
|
4
|
+
require 'gri/msnmp'
|
5
|
+
require 'gri/vendor'
|
6
|
+
require 'gri/plugin/ucdavis'
|
7
|
+
require 'gri/plugin/netsnmp'
|
8
|
+
|
9
|
+
module GRI
|
10
|
+
|
11
|
+
class TestVendor < Test::Unit::TestCase
|
12
|
+
def test_vendor
|
13
|
+
sysinfo = {}
|
14
|
+
vendor = Vendor.check sysinfo
|
15
|
+
ae 'unknown', vendor.name
|
16
|
+
sysinfo = {'sysObjectID'=>''}
|
17
|
+
vendor = Vendor.check sysinfo
|
18
|
+
ae 'unknown', vendor.name
|
19
|
+
|
20
|
+
sysinfo = {"sysName"=>"testhost.example.com",
|
21
|
+
"sysObjectID"=>"+\006\001\004\001\277\b\003\002\n",
|
22
|
+
"sysLocation"=>"Right here, right now.",
|
23
|
+
"sysDescr"=>"Linux testhost.example.com 2.6.18-274.12.1.el5PAE #1 SMP Tue Nov 29 14:16:58 EST 2011 i686",
|
24
|
+
"sysUpTime"=>1000000000}
|
25
|
+
|
26
|
+
vendor = Vendor.check sysinfo
|
27
|
+
assert vendor.options['interfaces']
|
28
|
+
assert vendor.options['ifMIB']
|
29
|
+
assert vendor.options['ucd-la']
|
30
|
+
assert vendor.options['ucd-memory']
|
31
|
+
assert_nil vendor.options['notexist']
|
32
|
+
ae '2c', vendor.options['ver']
|
33
|
+
ae 'Linux', sysinfo['_firm']
|
34
|
+
|
35
|
+
vendor = Vendor.check sysinfo, 'interfaces'=>false
|
36
|
+
assert !vendor.options['interfaces']
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
data/test/test_writer.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/unittest_helper')
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
require 'gri/writer'
|
6
|
+
|
7
|
+
module GRI
|
8
|
+
|
9
|
+
class Writer
|
10
|
+
attr_reader :options
|
11
|
+
end
|
12
|
+
|
13
|
+
class TestWriter < Test::Unit::TestCase
|
14
|
+
def test_writer
|
15
|
+
tra_dir = '/tmp'
|
16
|
+
writer = Writer.create 'ldb', :tra_dir=>tra_dir, :tra_expire_day=>1
|
17
|
+
assert_kind_of TextWriter, writer
|
18
|
+
|
19
|
+
hdir = tra_dir + '/testhost'
|
20
|
+
FileUtils.rm_r hdir, :force=>true
|
21
|
+
records = [{'_host'=>'testhost', '_key'=>'SYS', '_sysdescr'=>'TEST'}]
|
22
|
+
writer.write records
|
23
|
+
writer.finalize
|
24
|
+
sysdir = hdir + '/SYS_'
|
25
|
+
fname = Dir.glob(sysdir + '/*').first
|
26
|
+
str = File.read fname
|
27
|
+
assert_match /_sysdescr:TEST/, str
|
28
|
+
writer.purge_logs
|
29
|
+
FileUtils.rm_r hdir, :force=>true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
begin
|
3
|
+
require 'simplecov'
|
4
|
+
SimpleCov.start
|
5
|
+
rescue LoadError
|
6
|
+
end
|
7
|
+
require 'test/unit'
|
8
|
+
require 'pp'
|
9
|
+
|
10
|
+
$test_dir = File.expand_path File.dirname(__FILE__)
|
11
|
+
$:.unshift $test_dir
|
12
|
+
$:.unshift($test_dir + '/../lib')
|
13
|
+
require 'gri/q'
|
14
|
+
$test = true
|
15
|
+
#$debug = true
|
16
|
+
|
17
|
+
module Test
|
18
|
+
module Unit
|
19
|
+
module Assertions
|
20
|
+
alias ae assert_equal
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
unless ARGV.grep(/--show-log/).empty?
|
26
|
+
$show_log = true
|
27
|
+
end
|