steto 0.0.5 → 0.0.6
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/lib/steto/nagios_check.rb +16 -5
- data/lib/steto/version.rb +1 -1
- data/spec/steto/beep_reporter_spec.rb +3 -3
- data/spec/steto/nagios_check_spec.rb +14 -3
- data/steto.gemspec +2 -2
- metadata +119 -117
data/lib/steto/nagios_check.rb
CHANGED
@@ -19,14 +19,25 @@ module Steto
|
|
19
19
|
def command_line
|
20
20
|
# => "--critical=:critical --warning=:warning"
|
21
21
|
params = options.map do |option, value|
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
unless option.size == 1
|
23
|
+
cli_option = option.to_s.gsub("_","-")
|
24
|
+
unless value == true
|
25
|
+
"--#{cli_option}=:#{option}"
|
26
|
+
else
|
27
|
+
"--#{cli_option}"
|
28
|
+
end
|
25
29
|
else
|
26
|
-
|
30
|
+
unless value == true
|
31
|
+
"-#{option} :#{option}"
|
32
|
+
else
|
33
|
+
"-#{option}"
|
34
|
+
end
|
27
35
|
end
|
28
36
|
end.sort.join(' ')
|
29
|
-
|
37
|
+
|
38
|
+
command_options = Hash[options.map { |k,v| [ k, v.to_s ] }]
|
39
|
+
|
40
|
+
@command_line ||= Cocaine::CommandLine.new(command, params, command_options.merge(:expected_outcodes => [0, 1, 2, 3]))
|
30
41
|
end
|
31
42
|
|
32
43
|
def status_from_command_line
|
data/lib/steto/version.rb
CHANGED
@@ -4,17 +4,17 @@ describe Steto::BeepReporter do
|
|
4
4
|
|
5
5
|
it "should beep twice when one of checks is critical" do
|
6
6
|
subject.should_receive(:beep).with(2)
|
7
|
-
subject.report [ mock
|
7
|
+
subject.report [ mock(:status => Steto::Status.new(:critical)) ]
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should beep when one of checks is warning" do
|
11
11
|
subject.should_receive(:beep)
|
12
|
-
subject.report [ mock
|
12
|
+
subject.report [ mock(:status => Steto::Status.new(:warning)) ]
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should not beep when no check is warning or critical" do
|
16
16
|
subject.should_not_receive(:beep)
|
17
|
-
subject.report [ mock
|
17
|
+
subject.report [ mock(:status => Steto::Status.new(:info)) ]
|
18
18
|
end
|
19
19
|
|
20
20
|
end
|
@@ -32,19 +32,30 @@ describe Steto::NagiosCheck do
|
|
32
32
|
|
33
33
|
describe "#command_line" do
|
34
34
|
|
35
|
-
|
35
|
+
before do
|
36
36
|
subject.stub :command => "dummy"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should use command as binary" do
|
37
40
|
subject.command_line.command.should == "dummy"
|
38
41
|
end
|
39
42
|
|
40
43
|
it "should use options as parameters" do
|
41
|
-
subject.stub :command => "dummy"
|
42
44
|
subject.stub :options => { :warning => "1,0.5,0.5", :critical => "1,1,1" }
|
43
45
|
subject.command_line.command.should == "dummy --critical='1,1,1' --warning='1,0.5,0.5'"
|
44
46
|
end
|
45
47
|
|
48
|
+
it "should support non string options" do
|
49
|
+
subject.stub :options => { :port => 4567 }
|
50
|
+
subject.command_line.command.should == "dummy --port='4567'"
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should support short options" do
|
54
|
+
subject.stub :options => { :p => 4567 }
|
55
|
+
subject.command_line.command.should == "dummy -p '4567'"
|
56
|
+
end
|
57
|
+
|
46
58
|
it "should rename option with underscores" do
|
47
|
-
subject.stub :command => "dummy"
|
48
59
|
subject.stub :options => { :with_underscore => "yes" }
|
49
60
|
subject.command_line.command.should == "dummy --with-underscore='yes'"
|
50
61
|
end
|
data/steto.gemspec
CHANGED
@@ -21,10 +21,10 @@ Gem::Specification.new do |s|
|
|
21
21
|
# specify any dependencies here; for example:
|
22
22
|
s.add_development_dependency "rspec"
|
23
23
|
s.add_development_dependency "rake"
|
24
|
-
s.add_development_dependency "
|
24
|
+
s.add_development_dependency "simplecov"
|
25
25
|
s.add_development_dependency "RedCloth"
|
26
26
|
|
27
|
-
s.add_runtime_dependency "cocaine"
|
27
|
+
s.add_runtime_dependency "cocaine", "0.2.1"
|
28
28
|
s.add_runtime_dependency "parallel"
|
29
29
|
s.add_runtime_dependency "json"
|
30
30
|
end
|
metadata
CHANGED
@@ -1,132 +1,137 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: steto
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 5
|
10
|
-
version: 0.0.5
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Alban Peignier
|
14
9
|
- Florent Peyraud
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
type: :development
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
13
|
+
date: 2012-10-18 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
33
16
|
name: rspec
|
34
|
-
|
35
|
-
|
36
|
-
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
37
23
|
type: :development
|
38
|
-
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
26
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
45
|
-
- 0
|
46
|
-
version: "0"
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
31
|
+
- !ruby/object:Gem::Dependency
|
47
32
|
name: rake
|
48
|
-
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
prerelease: false
|
51
|
-
type: :development
|
52
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
53
34
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
|
59
|
-
- 0
|
60
|
-
version: "0"
|
61
|
-
name: rcov
|
62
|
-
version_requirements: *id003
|
63
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
type: :development
|
64
40
|
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: simplecov
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
65
55
|
type: :development
|
66
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
58
|
none: false
|
68
|
-
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
|
72
|
-
|
73
|
-
- 0
|
74
|
-
version: "0"
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
75
64
|
name: RedCloth
|
76
|
-
|
77
|
-
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
type: :development
|
78
72
|
prerelease: false
|
79
|
-
|
80
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
74
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
|
87
|
-
- 0
|
88
|
-
version: "0"
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
89
80
|
name: cocaine
|
90
|
-
|
91
|
-
|
92
|
-
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - '='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 0.2.1
|
93
87
|
type: :runtime
|
94
|
-
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
90
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
|
101
|
-
- 0
|
102
|
-
version: "0"
|
91
|
+
requirements:
|
92
|
+
- - '='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 0.2.1
|
95
|
+
- !ruby/object:Gem::Dependency
|
103
96
|
name: parallel
|
104
|
-
|
105
|
-
|
106
|
-
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
107
103
|
type: :runtime
|
108
|
-
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
106
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
|
115
|
-
- 0
|
116
|
-
version: "0"
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
117
112
|
name: json
|
118
|
-
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
119
127
|
description: Ruby engine to check system status (with Nagios or custom checks)
|
120
|
-
email:
|
128
|
+
email:
|
121
129
|
- alban@tryphon.eu
|
122
130
|
- florent@tryphon.eu
|
123
131
|
executables: []
|
124
|
-
|
125
132
|
extensions: []
|
126
|
-
|
127
133
|
extra_rdoc_files: []
|
128
|
-
|
129
|
-
files:
|
134
|
+
files:
|
130
135
|
- .gitignore
|
131
136
|
- Gemfile
|
132
137
|
- Guardfile
|
@@ -157,38 +162,35 @@ files:
|
|
157
162
|
- steto.gemspec
|
158
163
|
homepage: https://github.com/tryphon/steto
|
159
164
|
licenses: []
|
160
|
-
|
161
165
|
post_install_message:
|
162
166
|
rdoc_options: []
|
163
|
-
|
164
|
-
require_paths:
|
167
|
+
require_paths:
|
165
168
|
- lib
|
166
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
169
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
167
170
|
none: false
|
168
|
-
requirements:
|
169
|
-
- -
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
|
172
|
-
segments:
|
171
|
+
requirements:
|
172
|
+
- - ! '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
segments:
|
173
176
|
- 0
|
174
|
-
|
175
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
hash: -2351214180611345255
|
178
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
179
|
none: false
|
177
|
-
requirements:
|
178
|
-
- -
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
|
181
|
-
segments:
|
180
|
+
requirements:
|
181
|
+
- - ! '>='
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
184
|
+
segments:
|
182
185
|
- 0
|
183
|
-
|
186
|
+
hash: -2351214180611345255
|
184
187
|
requirements: []
|
185
|
-
|
186
188
|
rubyforge_project: steto
|
187
|
-
rubygems_version: 1.8.
|
189
|
+
rubygems_version: 1.8.23
|
188
190
|
signing_key:
|
189
191
|
specification_version: 3
|
190
192
|
summary: Check system status
|
191
|
-
test_files:
|
193
|
+
test_files:
|
192
194
|
- spec/spec_helper.rb
|
193
195
|
- spec/steto/base_check_spec.rb
|
194
196
|
- spec/steto/beep_reporter_spec.rb
|