updawg 0.3.5
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/.document +5 -0
- data/.gitignore +25 -0
- data/CHANGELOG +8 -0
- data/Gemfile +13 -0
- data/LICENSE +20 -0
- data/README.rdoc +99 -0
- data/Rakefile +45 -0
- data/VERSION +1 -0
- data/lib/updawg.rb +36 -0
- data/lib/updawg/checks.rb +3 -0
- data/lib/updawg/checks/check.rb +67 -0
- data/lib/updawg/checks/deviation_check.rb +64 -0
- data/lib/updawg/checks/threshold_check.rb +36 -0
- data/lib/updawg/monitor.rb +33 -0
- data/lib/updawg/results.rb +111 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/updawg/checks/check_spec.rb +112 -0
- data/spec/updawg/checks/deviation_check_spec.rb +125 -0
- data/spec/updawg/checks/threshold_check_spec.rb +43 -0
- data/spec/updawg/monitor_spec.rb +68 -0
- data/spec/updawg/results_spec.rb +118 -0
- data/spec/updawg_spec.rb +59 -0
- data/updawg.gemspec +81 -0
- metadata +156 -0
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'hpricot'
|
3
|
+
|
4
|
+
describe Updawg::ResultSet do
|
5
|
+
before(:each) do
|
6
|
+
@results = Updawg::ResultSet.new
|
7
|
+
@results << Updawg::Result.new('One', :pass, 'everything is okay')
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should be successful if all checks passed' do
|
11
|
+
@results.should be_success
|
12
|
+
@results.should_not be_warning
|
13
|
+
@results.should_not be_error
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should be warning if at least one check is a warning' do
|
17
|
+
@results << Updawg::Result.new('Two', :warning, 'oh no!')
|
18
|
+
@results.should be_warning
|
19
|
+
@results.should_not be_success
|
20
|
+
@results.should_not be_error
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should be error if at least one check is an error' do
|
24
|
+
@results << Updawg::Result.new('Two', :warning, 'oh no!')
|
25
|
+
@results << Updawg::Result.new('Three', :error, 'oh no!')
|
26
|
+
@results.should be_error
|
27
|
+
@results.should_not be_success
|
28
|
+
@results.should_not be_warning
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#errors' do
|
32
|
+
it 'should return array of failed results' do
|
33
|
+
@results << Updawg::Result.new('Two', :warning, 'oh no!')
|
34
|
+
@results << (error = Updawg::Result.new('Three', :error, 'oh no!'))
|
35
|
+
@results.errors.should == [error]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#warnings' do
|
40
|
+
it 'should return array of warning results' do
|
41
|
+
@results << (warn = Updawg::Result.new('Two', :warning, 'oh no!'))
|
42
|
+
@results << Updawg::Result.new('Three', :error, 'oh no!')
|
43
|
+
@results.warnings.should == [warn]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '#to_html' do
|
48
|
+
it 'should build a table with the status in the class' do
|
49
|
+
tag = Hpricot(@results.to_html)/'table.pass'
|
50
|
+
tag.should_not be_empty
|
51
|
+
|
52
|
+
@results << Updawg::Result.new('Two', :warning, 'oh no!')
|
53
|
+
tag = Hpricot(@results.to_html)/'table.warning'
|
54
|
+
tag.should_not be_empty
|
55
|
+
|
56
|
+
@results << Updawg::Result.new('Three', :error, 'oh no!')
|
57
|
+
tag = Hpricot(@results.to_html)/'table.error'
|
58
|
+
tag.should_not be_empty
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should have a row for each test' do
|
62
|
+
@results << Updawg::Result.new('Two', :warning, 'oh no!')
|
63
|
+
@results << Updawg::Result.new('Three', :error, 'oh no!')
|
64
|
+
|
65
|
+
rows = Hpricot(@results.to_html)/'tr'
|
66
|
+
rows.length.should == 3
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'should include the name of the check' do
|
70
|
+
row = Hpricot(@results.to_html)/'tr'
|
71
|
+
(row/'td.name').text.should == 'One'
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should include the message for the check regardless of status' do
|
75
|
+
row = Hpricot(@results.to_html)/'tr:last'
|
76
|
+
(row/'td.message').text.should == 'everything is okay'
|
77
|
+
|
78
|
+
@results << Updawg::Result.new('Two', :warning, 'oops')
|
79
|
+
row = Hpricot(@results.to_html)/'tr:last'
|
80
|
+
(row/'td.message').text.should == 'oops'
|
81
|
+
|
82
|
+
@results << Updawg::Result.new('Three', :error, 'fml')
|
83
|
+
row = Hpricot(@results.to_html)/'tr:last'
|
84
|
+
(row/'td.message').text.should == 'fml'
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'should include the status text for the check' do
|
88
|
+
row = Hpricot(@results.to_html)/'tr'
|
89
|
+
(row/'td.status').text.should == 'PASS'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe '#to_text' do
|
94
|
+
it 'should have one result one per line' do
|
95
|
+
@results << Updawg::Result.new('Two', :warning, 'oh no!')
|
96
|
+
@results.to_text.should match(/PASS\t.*\nWARNING\t.*\n/)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe '#nagios_report!' do
|
101
|
+
it 'should exit with status 0 if there were no errors' do
|
102
|
+
@results.should_receive(:exit).with(0)
|
103
|
+
@results.nagios_report!(StringIO.new)
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'should exit with status 1 if there were warnings but no errors' do
|
107
|
+
@results << Updawg::Result.new('Two', :warning, 'oh no!')
|
108
|
+
@results.should_receive(:exit).with(1)
|
109
|
+
@results.nagios_report!(StringIO.new)
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'should exit with status 2 if there were errors' do
|
113
|
+
@results << Updawg::Result.new('Two', :error, 'oh no!')
|
114
|
+
@results.should_receive(:exit).with(2)
|
115
|
+
@results.nagios_report!(StringIO.new)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
data/spec/updawg_spec.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe Updawg do
|
4
|
+
it 'should create a configuration object' do
|
5
|
+
Updawg.configuration.should be_instance_of(Updawg::Configuration)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "configuration" do
|
9
|
+
before(:each) do
|
10
|
+
Updawg.configuration = Updawg::Configuration.new
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'by default' do
|
14
|
+
it 'should set error_text to ERROR' do
|
15
|
+
Updawg.configuration.error_text.should == 'ERROR'
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should set warning_text to WARNING' do
|
19
|
+
Updawg.configuration.warning_text.should == 'WARNING'
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should set success_text to PASS' do
|
23
|
+
Updawg.configuration.success_text.should == 'PASS'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should preserve configuration options between configure calls' do
|
28
|
+
Updawg.configure{|c| c.error_text = 'test'}
|
29
|
+
Updawg.configure
|
30
|
+
Updawg.configuration.error_text.should == 'test'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should allow configuration for error_text' do
|
34
|
+
Updawg.configure {|c| c.error_text = 'test'}
|
35
|
+
Updawg.configuration.error_text.should == 'test'
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should allow configuration for error_text' do
|
39
|
+
Updawg.configure {|c| c.error_text = 'test'}
|
40
|
+
Updawg.configuration.error_text.should == 'test'
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should allow configuration for success_text' do
|
44
|
+
Updawg.configure {|c| c.success_text = 'test'}
|
45
|
+
Updawg.configuration.success_text.should == 'test'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '#monitor' do
|
50
|
+
it 'should create a monitor and instance_eval the block' do
|
51
|
+
block = lambda { self.class.should == Updawg::Monitor }
|
52
|
+
Updawg.monitor(&block).should be_instance_of(Updawg::Monitor)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should return a new monitor with each call' do
|
56
|
+
Updawg.monitor{}.should_not === Updawg.monitor{}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/updawg.gemspec
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{updawg}
|
8
|
+
s.version = "0.3.5"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Matt Griffin"]
|
12
|
+
s.date = %q{2011-03-23}
|
13
|
+
s.email = %q{matt@griffinonline.org}
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"LICENSE",
|
16
|
+
"README.rdoc"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".document",
|
20
|
+
".gitignore",
|
21
|
+
"CHANGELOG",
|
22
|
+
"Gemfile",
|
23
|
+
"LICENSE",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"lib/updawg.rb",
|
28
|
+
"lib/updawg/checks.rb",
|
29
|
+
"lib/updawg/checks/check.rb",
|
30
|
+
"lib/updawg/checks/deviation_check.rb",
|
31
|
+
"lib/updawg/checks/threshold_check.rb",
|
32
|
+
"lib/updawg/monitor.rb",
|
33
|
+
"lib/updawg/results.rb",
|
34
|
+
"spec/spec.opts",
|
35
|
+
"spec/spec_helper.rb",
|
36
|
+
"spec/updawg/checks/check_spec.rb",
|
37
|
+
"spec/updawg/checks/deviation_check_spec.rb",
|
38
|
+
"spec/updawg/checks/threshold_check_spec.rb",
|
39
|
+
"spec/updawg/monitor_spec.rb",
|
40
|
+
"spec/updawg/results_spec.rb",
|
41
|
+
"spec/updawg_spec.rb",
|
42
|
+
"updawg.gemspec"
|
43
|
+
]
|
44
|
+
s.homepage = %q{http://github.com/Viximo/updawg}
|
45
|
+
s.require_paths = ["lib"]
|
46
|
+
s.rubygems_version = %q{1.3.7}
|
47
|
+
s.summary = %q{A simple way to see what's up, dawg (and what's not.)}
|
48
|
+
s.test_files = [
|
49
|
+
"spec/spec.opts",
|
50
|
+
"spec/spec_helper.rb",
|
51
|
+
"spec/updawg/checks/check_spec.rb",
|
52
|
+
"spec/updawg/checks/deviation_check_spec.rb",
|
53
|
+
"spec/updawg/checks/threshold_check_spec.rb",
|
54
|
+
"spec/updawg/monitor_spec.rb",
|
55
|
+
"spec/updawg/results_spec.rb",
|
56
|
+
"spec/updawg_spec.rb"
|
57
|
+
]
|
58
|
+
|
59
|
+
if s.respond_to? :specification_version then
|
60
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
61
|
+
s.specification_version = 3
|
62
|
+
|
63
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
64
|
+
s.add_runtime_dependency(%q<builder>, ["~> 2.1"])
|
65
|
+
s.add_runtime_dependency(%q<aggregate>, [">= 0"])
|
66
|
+
s.add_development_dependency(%q<rspec>, ["~> 1.3"])
|
67
|
+
s.add_development_dependency(%q<hpricot>, ["~> 0.8"])
|
68
|
+
else
|
69
|
+
s.add_dependency(%q<builder>, ["~> 2.1"])
|
70
|
+
s.add_dependency(%q<aggregate>, [">= 0"])
|
71
|
+
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
72
|
+
s.add_dependency(%q<hpricot>, ["~> 0.8"])
|
73
|
+
end
|
74
|
+
else
|
75
|
+
s.add_dependency(%q<builder>, ["~> 2.1"])
|
76
|
+
s.add_dependency(%q<aggregate>, [">= 0"])
|
77
|
+
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
78
|
+
s.add_dependency(%q<hpricot>, ["~> 0.8"])
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
metadata
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: updawg
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 5
|
10
|
+
version: 0.3.5
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Matt Griffin
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-03-28 00:00:00 -04:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
prerelease: false
|
23
|
+
type: :runtime
|
24
|
+
name: builder
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 1
|
31
|
+
segments:
|
32
|
+
- 2
|
33
|
+
- 1
|
34
|
+
version: "2.1"
|
35
|
+
requirement: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
prerelease: false
|
38
|
+
type: :runtime
|
39
|
+
name: aggregate
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
requirement: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
prerelease: false
|
52
|
+
type: :development
|
53
|
+
name: rspec
|
54
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 9
|
60
|
+
segments:
|
61
|
+
- 1
|
62
|
+
- 3
|
63
|
+
version: "1.3"
|
64
|
+
requirement: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
prerelease: false
|
67
|
+
type: :development
|
68
|
+
name: hpricot
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ~>
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 27
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
- 8
|
78
|
+
version: "0.8"
|
79
|
+
requirement: *id004
|
80
|
+
description:
|
81
|
+
email: matt@griffinonline.org
|
82
|
+
executables: []
|
83
|
+
|
84
|
+
extensions: []
|
85
|
+
|
86
|
+
extra_rdoc_files:
|
87
|
+
- LICENSE
|
88
|
+
- README.rdoc
|
89
|
+
files:
|
90
|
+
- .document
|
91
|
+
- .gitignore
|
92
|
+
- CHANGELOG
|
93
|
+
- Gemfile
|
94
|
+
- LICENSE
|
95
|
+
- README.rdoc
|
96
|
+
- Rakefile
|
97
|
+
- VERSION
|
98
|
+
- lib/updawg.rb
|
99
|
+
- lib/updawg/checks.rb
|
100
|
+
- lib/updawg/checks/check.rb
|
101
|
+
- lib/updawg/checks/deviation_check.rb
|
102
|
+
- lib/updawg/checks/threshold_check.rb
|
103
|
+
- lib/updawg/monitor.rb
|
104
|
+
- lib/updawg/results.rb
|
105
|
+
- spec/spec.opts
|
106
|
+
- spec/spec_helper.rb
|
107
|
+
- spec/updawg/checks/check_spec.rb
|
108
|
+
- spec/updawg/checks/deviation_check_spec.rb
|
109
|
+
- spec/updawg/checks/threshold_check_spec.rb
|
110
|
+
- spec/updawg/monitor_spec.rb
|
111
|
+
- spec/updawg/results_spec.rb
|
112
|
+
- spec/updawg_spec.rb
|
113
|
+
- updawg.gemspec
|
114
|
+
has_rdoc: true
|
115
|
+
homepage: http://github.com/Viximo/updawg
|
116
|
+
licenses: []
|
117
|
+
|
118
|
+
post_install_message:
|
119
|
+
rdoc_options: []
|
120
|
+
|
121
|
+
require_paths:
|
122
|
+
- lib
|
123
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
hash: 3
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
version: "0"
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
hash: 3
|
138
|
+
segments:
|
139
|
+
- 0
|
140
|
+
version: "0"
|
141
|
+
requirements: []
|
142
|
+
|
143
|
+
rubyforge_project:
|
144
|
+
rubygems_version: 1.3.7
|
145
|
+
signing_key:
|
146
|
+
specification_version: 3
|
147
|
+
summary: A simple way to see what's up, dawg (and what's not.)
|
148
|
+
test_files:
|
149
|
+
- spec/spec.opts
|
150
|
+
- spec/spec_helper.rb
|
151
|
+
- spec/updawg/checks/check_spec.rb
|
152
|
+
- spec/updawg/checks/deviation_check_spec.rb
|
153
|
+
- spec/updawg/checks/threshold_check_spec.rb
|
154
|
+
- spec/updawg/monitor_spec.rb
|
155
|
+
- spec/updawg/results_spec.rb
|
156
|
+
- spec/updawg_spec.rb
|