check_zfs 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Guardfile ADDED
@@ -0,0 +1,9 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'cucumber' do
5
+ watch(%r{^bin/.+$}) { 'features' }
6
+ watch(%r{^features/.+\.feature$})
7
+ watch(%r{^features/support/.+$}) { 'features' }
8
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
9
+ end
data/README.md CHANGED
@@ -2,22 +2,29 @@
2
2
 
3
3
  Monitor the health of your ZFS pools with Nagios
4
4
 
5
- TODO: link to nagios, zfs and nagios-plugin guidelines
5
+ ## Introduction
6
6
 
7
- ## Installation
7
+ Maybe you want to know if a passed out hard disk degrates your ZFS pool.
8
+ check_zfs converts the output of `zpool` into the (Nagios Plugin format)[http://nagiosplug.sourceforge.net/developer-guidelines.html]... really no rocket science.
9
+ Install this little gem on your ZFS host and let [Nagios](http://www.nagios.org/) run it via [NRPE](http://exchange.nagios.org/directory/Addons/Monitoring-Agents/NRPE--2D-Nagios-Remote-Plugin-Executor/details) to see if your pools are still green (=ONLINE).
10
+
11
+ ## Installation and Usage
12
+
13
+ NRPE needs to be installed on your ZFS host and should have defined a check_zfs service.
14
+ Then install the check_zfs via RubyGems:
8
15
 
9
16
  `gem install check_zfs`
10
17
 
11
- ## Usage
18
+ Run it manually for testing:
12
19
 
13
20
  `check_zfs`
14
21
 
15
- TODO: Add config example for nagios!
16
- TODO: Show command in action!
17
-
18
22
  ## Caveats
19
23
 
20
- TODO: Add note about tested platform(s)!
24
+ This gem was tested under Solaris 10 10/09 with...
25
+
26
+ `pkginfo -l SUNWzfsu`[/VERSION:\s+(.*)/,1]
27
+ => "11.10.0,REV=2006.05.18.01.46"
21
28
 
22
29
  ## Note on Patches/Pull Requests
23
30
 
data/bin/check_zfs CHANGED
@@ -2,8 +2,14 @@
2
2
  require 'nagios-probe'
3
3
 
4
4
  class CheckZFS < Nagios::Probe
5
+ def zpools
6
+ output = `zpool list -H -o name,health 2>&1`
7
+ raise output unless $?.success?
8
+ output.split("\n")
9
+ end
10
+
5
11
  def health_by_pool
6
- @health_by_pool ||= `zpool list -H -o name,health`.split("\n").inject({}) do |pools,line|
12
+ @health_by_pool ||= zpools.inject({}) do |pools,line|
7
13
  name, health = line.split("\t")
8
14
  pools[name] = health
9
15
  pools
data/check_zfs.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'check_zfs'
5
- s.version = '0.0.2'
5
+ s.version = '0.0.3'
6
6
  s.authors = ["Björn Albers"]
7
7
  s.email = ["bjoernalbers@googlemail.com"]
8
8
  s.description = 'Monitor the health of your ZFS pools with Nagios'
@@ -13,7 +13,8 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.add_development_dependency 'cucumber', '>= 1.0.2'
15
15
  s.add_development_dependency 'aruba', '>= 0.4.6'
16
- s.add_development_dependency 'aruba-doubles', '>= 0.1.1'
16
+ s.add_development_dependency 'aruba-doubles', '>= 0.2.0'
17
+ s.add_development_dependency 'guard-cucumber', '>= 0.7.3'
17
18
 
18
19
  s.files = `git ls-files`.split("\n")
19
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -5,7 +5,7 @@ Feature: Check ZFS
5
5
  I want the health of my ZFS pools monitored with Nagios by check_zfs
6
6
 
7
7
  Scenario Outline: Exit status and stdout
8
- Given a double of "zpool list -H -o name,health" with stdout:
8
+ Given I could run `zpool list -H -o name,health` with stdout:
9
9
  """
10
10
  rpool <rpool>
11
11
  tank <tank>
@@ -24,3 +24,12 @@ Feature: Check ZFS
24
24
  | ONLINE | ONLINE | ONLINE | 0 | OK: 3 ONLINE |
25
25
  | ONLINE | DEGRADED | ONLINE | 1 | Warning: 1 DEGRADED, 2 ONLINE |
26
26
  | ONLINE | DEGRADED | FAULTED | 2 | Critical: 1 FAULTED, 1 DEGRADED, 1 ONLINE |
27
+
28
+ Scenario: Missing zpool command
29
+ Given I could run `zpool list -H -o name,health` with exit status 127 and stderr:
30
+ """
31
+ command not found: zpool list -H -o name,health
32
+ """
33
+ When I run `check_zfs`
34
+ Then the exit status should be 3
35
+ And the stdout should contain "Unknown: command not found: zpool"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: check_zfs
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Bj\xC3\xB6rn Albers"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-21 00:00:00 Z
18
+ date: 2011-11-02 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: nagios-probe
@@ -73,14 +73,30 @@ dependencies:
73
73
  requirements:
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
76
- hash: 25
76
+ hash: 23
77
77
  segments:
78
78
  - 0
79
- - 1
80
- - 1
81
- version: 0.1.1
79
+ - 2
80
+ - 0
81
+ version: 0.2.0
82
82
  type: :development
83
83
  version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
85
+ name: guard-cucumber
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ hash: 5
93
+ segments:
94
+ - 0
95
+ - 7
96
+ - 3
97
+ version: 0.7.3
98
+ type: :development
99
+ version_requirements: *id005
84
100
  description: Monitor the health of your ZFS pools with Nagios
85
101
  email:
86
102
  - bjoernalbers@googlemail.com
@@ -93,6 +109,7 @@ extra_rdoc_files: []
93
109
  files:
94
110
  - .gitignore
95
111
  - Gemfile
112
+ - Guardfile
96
113
  - LICENSE
97
114
  - README.md
98
115
  - Rakefile
@@ -133,7 +150,7 @@ rubyforge_project:
133
150
  rubygems_version: 1.8.8
134
151
  signing_key:
135
152
  specification_version: 3
136
- summary: check_zfs-0.0.2
153
+ summary: check_zfs-0.0.3
137
154
  test_files:
138
155
  - features/check_zfs.feature
139
156
  - features/support/env.rb