nagi 0.1.0 → 0.1.1
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/README.md +2 -2
- data/lib/nagi/utility.rb +9 -1
- data/lib/nagi/version.rb +1 -1
- data/spec/nagi/optionparser_spec.rb +1 -1
- data/spec/nagi/utility_spec.rb +5 -0
- metadata +6 -6
data/README.md
CHANGED
|
@@ -15,7 +15,7 @@ A typical plugin looks like this:
|
|
|
15
15
|
#!/usr/bin/env ruby
|
|
16
16
|
|
|
17
17
|
require 'nagi'
|
|
18
|
-
require
|
|
18
|
+
require 'resolv'
|
|
19
19
|
|
|
20
20
|
Nagi do
|
|
21
21
|
name 'check_dns'
|
|
@@ -32,7 +32,7 @@ Nagi do
|
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
if args[:ip] and ip != args[:ip]
|
|
35
|
-
critical "#{args[:hostname]} resolves to #{ip}, expected #{args[:ip]}
|
|
35
|
+
critical "#{args[:hostname]} resolves to #{ip}, expected #{args[:ip]}"
|
|
36
36
|
else
|
|
37
37
|
ok "#{args[:hostname]} resolves to #{ip}"
|
|
38
38
|
end
|
data/lib/nagi/utility.rb
CHANGED
|
@@ -3,7 +3,15 @@ module Nagi
|
|
|
3
3
|
module_function
|
|
4
4
|
|
|
5
5
|
def execute(command)
|
|
6
|
-
|
|
6
|
+
command = command.gsub(/'/, "\'")
|
|
7
|
+
if defined?(Open3.capture2)
|
|
8
|
+
output, status = Open3.capture2e("/bin/bash -o pipefail -c '#{command}'")
|
|
9
|
+
else
|
|
10
|
+
IO.popen("/bin/bash -o pipefail -c '#{command}' 2>&1") do |io|
|
|
11
|
+
output = io.read
|
|
12
|
+
end
|
|
13
|
+
status = $?
|
|
14
|
+
end
|
|
7
15
|
raise "Shell failure, '#{output.gsub(/^\/bin\/bash: /, '').strip}'" if status.exitstatus != 0
|
|
8
16
|
return output.strip
|
|
9
17
|
end
|
data/lib/nagi/version.rb
CHANGED
data/spec/nagi/utility_spec.rb
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe 'Nagi::Utility::execute' do
|
|
4
|
+
it 'handles special characters correctly' do
|
|
5
|
+
Nagi::Utility.execute("echo 'x'").should eq 'x'
|
|
6
|
+
Nagi::Utility.execute('echo "y"').should eq 'y'
|
|
7
|
+
end
|
|
8
|
+
|
|
4
9
|
it 'raises exception on non-zero status' do
|
|
5
10
|
lambda { Nagi::Utility.execute('exit 1') }.should raise_error StandardError
|
|
6
11
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nagi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-05-
|
|
12
|
+
date: 2012-05-30 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rake
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70354822658820 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70354822658820
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rspec
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &70354822658200 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,7 +32,7 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *70354822658200
|
|
36
36
|
description: A DSL for writing Nagios plugins
|
|
37
37
|
email:
|
|
38
38
|
- erik@bengler.no
|