check_zfs 0.0.3 → 0.1.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.
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2@check_zfs --create
data/bin/check_zfs CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env ruby -w
2
- require 'nagios-probe'
2
+ require 'nagiosplugin'
3
3
 
4
- class CheckZFS < Nagios::Probe
4
+ class ZFS < NagiosPlugin::Plugin
5
5
  def zpools
6
- output = `zpool list -H -o name,health 2>&1`
7
- raise output unless $?.success?
8
- output.split("\n")
6
+ out = `zpool list -H -o name,health 2>&1`
7
+ raise out unless $?.success?
8
+ out.split("\n")
9
9
  end
10
10
 
11
11
  def health_by_pool
@@ -20,39 +20,25 @@ class CheckZFS < Nagios::Probe
20
20
  (health && health_by_pool.select { |p,h| h == health.to_s.upcase } ) || health_by_pool
21
21
  end
22
22
 
23
- def check_crit
23
+ def critical?
24
24
  !pools(:faulted).empty?
25
25
  end
26
26
 
27
- def check_warn
27
+ def warning?
28
28
  !pools(:degraded).empty?
29
29
  end
30
30
 
31
- def check_ok
31
+ def ok?
32
32
  pools(:online).count == pools.count
33
33
  end
34
34
 
35
- def info
35
+ def output
36
36
  s = []
37
37
  [:faulted, :degraded, :online].each do |health|
38
38
  s << "#{pools(health).count} #{health.to_s.upcase}" unless pools(health).empty?
39
39
  end
40
40
  s.join(", ")
41
41
  end
42
-
43
- alias :crit_message :info
44
- alias :warn_message :info
45
- alias :ok_message :info
46
- end
47
-
48
- begin
49
- options = {} # Nagios::Probe constructor accepts a single optional param that is assigned to @opts
50
- probe = CheckZFS.new(options)
51
- probe.run
52
- rescue Exception => e
53
- puts "Unknown: " + e
54
- exit Nagios::UNKNOWN
55
42
  end
56
43
 
57
- puts probe.message
58
- exit probe.retval
44
+ ZFS.check!
data/check_zfs.gemspec CHANGED
@@ -2,15 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'check_zfs'
5
- s.version = '0.0.3'
5
+ s.version = '0.1.0'
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'
9
9
  s.summary = "#{s.name}-#{s.version}"
10
10
  s.homepage = 'https://github.com/bjoernalbers/check_zfs'
11
11
 
12
- s.add_dependency 'nagios-probe', '>= 0.1.2'
12
+ s.add_dependency 'nagiosplugin', '~> 0.0.3'
13
13
 
14
+ s.add_development_dependency 'rake'
14
15
  s.add_development_dependency 'cucumber', '>= 1.0.2'
15
16
  s.add_development_dependency 'aruba', '>= 0.4.6'
16
17
  s.add_development_dependency 'aruba-doubles', '>= 0.2.0'
@@ -1,6 +1,6 @@
1
1
  Feature: Check ZFS
2
2
 
3
- In order to notified before it's to late
3
+ In order to be notified before it's to late
4
4
  As an agile System-Administrator
5
5
  I want the health of my ZFS pools monitored with Nagios by check_zfs
6
6
 
@@ -15,15 +15,15 @@ Feature: Check ZFS
15
15
  Then the exit status should be <exit>
16
16
  And the stdout should contain exactly:
17
17
  """
18
- <stdout>
18
+ ZFS <output>
19
19
 
20
20
  """
21
21
 
22
22
  Examples:
23
- | rpool | tank | tank2 | exit | stdout |
23
+ | rpool | tank | tank2 | exit | output |
24
24
  | ONLINE | ONLINE | ONLINE | 0 | OK: 3 ONLINE |
25
- | ONLINE | DEGRADED | ONLINE | 1 | Warning: 1 DEGRADED, 2 ONLINE |
26
- | ONLINE | DEGRADED | FAULTED | 2 | Critical: 1 FAULTED, 1 DEGRADED, 1 ONLINE |
25
+ | ONLINE | DEGRADED | ONLINE | 1 | WARNING: 1 DEGRADED, 2 ONLINE |
26
+ | ONLINE | DEGRADED | FAULTED | 2 | CRITICAL: 1 FAULTED, 1 DEGRADED, 1 ONLINE |
27
27
 
28
28
  Scenario: Missing zpool command
29
29
  Given I could run `zpool list -H -o name,health` with exit status 127 and stderr:
@@ -32,4 +32,4 @@ Feature: Check ZFS
32
32
  """
33
33
  When I run `check_zfs`
34
34
  Then the exit status should be 3
35
- And the stdout should contain "Unknown: command not found: zpool"
35
+ And the stdout should contain "ZFS UNKNOWN: command not found: zpool"
metadata CHANGED
@@ -1,113 +1,92 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: check_zfs
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
11
6
  platform: ruby
12
- authors:
13
- - "Bj\xC3\xB6rn Albers"
7
+ authors:
8
+ - Björn Albers
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-11-02 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: nagios-probe
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2011-12-31 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nagiosplugin
16
+ requirement: &70360989688380 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 31
29
- segments:
30
- - 0
31
- - 1
32
- - 2
33
- version: 0.1.2
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.0.3
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: cucumber
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70360989688380
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70360989687540 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 19
45
- segments:
46
- - 1
47
- - 0
48
- - 2
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70360989687540
36
+ - !ruby/object:Gem::Dependency
37
+ name: cucumber
38
+ requirement: &70360989685880 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
49
43
  version: 1.0.2
50
44
  type: :development
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: aruba
54
45
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
46
+ version_requirements: *70360989685880
47
+ - !ruby/object:Gem::Dependency
48
+ name: aruba
49
+ requirement: &70360989684200 !ruby/object:Gem::Requirement
56
50
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- - 4
64
- - 6
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
65
54
  version: 0.4.6
66
55
  type: :development
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: aruba-doubles
70
56
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
57
+ version_requirements: *70360989684200
58
+ - !ruby/object:Gem::Dependency
59
+ name: aruba-doubles
60
+ requirement: &70360989683080 !ruby/object:Gem::Requirement
72
61
  none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 23
77
- segments:
78
- - 0
79
- - 2
80
- - 0
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
81
65
  version: 0.2.0
82
66
  type: :development
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: guard-cucumber
86
67
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
68
+ version_requirements: *70360989683080
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-cucumber
71
+ requirement: &70360989682240 !ruby/object:Gem::Requirement
88
72
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 5
93
- segments:
94
- - 0
95
- - 7
96
- - 3
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
97
76
  version: 0.7.3
98
77
  type: :development
99
- version_requirements: *id005
78
+ prerelease: false
79
+ version_requirements: *70360989682240
100
80
  description: Monitor the health of your ZFS pools with Nagios
101
- email:
81
+ email:
102
82
  - bjoernalbers@googlemail.com
103
- executables:
83
+ executables:
104
84
  - check_zfs
105
85
  extensions: []
106
-
107
86
  extra_rdoc_files: []
108
-
109
- files:
87
+ files:
110
88
  - .gitignore
89
+ - .rvmrc
111
90
  - Gemfile
112
91
  - Guardfile
113
92
  - LICENSE
@@ -120,37 +99,34 @@ files:
120
99
  - lib/check_zfs.rb
121
100
  homepage: https://github.com/bjoernalbers/check_zfs
122
101
  licenses: []
123
-
124
102
  post_install_message:
125
103
  rdoc_options: []
126
-
127
- require_paths:
104
+ require_paths:
128
105
  - lib
129
- required_ruby_version: !ruby/object:Gem::Requirement
106
+ required_ruby_version: !ruby/object:Gem::Requirement
130
107
  none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- hash: 3
135
- segments:
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ segments:
136
113
  - 0
137
- version: "0"
138
- required_rubygems_version: !ruby/object:Gem::Requirement
114
+ hash: 672083281411555788
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
116
  none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- hash: 3
144
- segments:
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ segments:
145
122
  - 0
146
- version: "0"
123
+ hash: 672083281411555788
147
124
  requirements: []
148
-
149
125
  rubyforge_project:
150
- rubygems_version: 1.8.8
126
+ rubygems_version: 1.8.10
151
127
  signing_key:
152
128
  specification_version: 3
153
- summary: check_zfs-0.0.3
154
- test_files:
129
+ summary: check_zfs-0.1.0
130
+ test_files:
155
131
  - features/check_zfs.feature
156
132
  - features/support/env.rb