check_zfs 0.1.1 → 0.2.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.
Files changed (5) hide show
  1. data/.gitignore +1 -0
  2. data/bin/check_zfs +35 -29
  3. data/check_zfs.gemspec +5 -5
  4. metadata +116 -78
  5. data/.rvmrc +0 -1
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ vendor/*
data/bin/check_zfs CHANGED
@@ -1,37 +1,22 @@
1
1
  #!/usr/bin/env ruby -w
2
- require 'nagiosplugin'
3
2
 
4
- class ZFS < NagiosPlugin::Plugin
5
- def zpools
6
- out = `zpool list -H -o name,health 2>&1`
7
- raise out unless $?.success?
8
- out.split("\n")
9
- end
10
-
11
- def health_by_pool
12
- @health_by_pool ||= zpools.inject({}) do |pools,line|
13
- name, health = line.split("\t")
14
- pools[name] = health
15
- pools
16
- end
17
- end
18
-
19
- def pools(health = nil)
20
- (health && health_by_pool.select { |p,h| h == health.to_s.upcase } ) || health_by_pool
21
- end
22
-
23
- def critical?
24
- !pools(:faulted).empty?
25
- end
3
+ begin
4
+ require 'nagiosplugin'
5
+ rescue LoadError
6
+ require 'rubygems'
7
+ require 'nagiosplugin'
8
+ end
26
9
 
27
- def warning?
28
- !pools(:degraded).empty?
29
- end
30
10
 
31
- def ok?
32
- pools(:online).count == pools.count
11
+ class ZFS < NagiosPlugin::Plugin
12
+ # Check the ZFS status (required method by nagiosplugin)
13
+ def check
14
+ critical(output) if !pools(:faulted).empty?
15
+ warning(output) if !pools(:degraded).empty?
16
+ ok(output) if pools(:online).count == pools.count
33
17
  end
34
18
 
19
+ # @return [String] the summarized check result
35
20
  def output
36
21
  s = []
37
22
  [:faulted, :degraded, :online].each do |health|
@@ -39,6 +24,27 @@ class ZFS < NagiosPlugin::Plugin
39
24
  end
40
25
  s.join(", ")
41
26
  end
27
+
28
+ private
29
+
30
+ def pools(health = nil)
31
+ (health && health_by_pool.select { |p,h| h == health.to_s.upcase } ) || health_by_pool
32
+ end
33
+
34
+ def health_by_pool
35
+ @health_by_pool ||= zpools.inject({}) do |pools,line|
36
+ name, health = line.split("\t")
37
+ pools[name] = health
38
+ pools
39
+ end
40
+ end
41
+
42
+ def zpools
43
+ out = `zpool list -H -o name,health 2>&1`
44
+ raise out unless $?.success?
45
+ out.split("\n")
46
+ end
42
47
  end
43
48
 
44
- ZFS.check!
49
+
50
+ ZFS.run
data/check_zfs.gemspec CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'check_zfs'
5
- s.version = '0.1.1'
6
- s.authors = ["Björn Albers"]
7
- s.email = ["bjoernalbers@googlemail.com"]
5
+ s.version = '0.2.0'
6
+ s.authors = ['Björn Albers']
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 'nagiosplugin', '~> 0.0.4'
12
+ s.add_dependency 'nagiosplugin', '~> 1.0.0'
13
13
 
14
14
  s.add_development_dependency 'rake'
15
15
  s.add_development_dependency 'cucumber', '>= 1.0.2'
@@ -20,5 +20,5 @@ Gem::Specification.new do |s|
20
20
  s.files = `git ls-files`.split("\n")
21
21
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
22
22
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
23
- s.require_paths = ["lib"]
23
+ s.require_paths = ['lib']
24
24
  end
metadata CHANGED
@@ -1,92 +1,127 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: check_zfs
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
6
11
  platform: ruby
7
- authors:
8
- - Björn Albers
12
+ authors:
13
+ - "Bj\xC3\xB6rn Albers"
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-12-31 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: nagiosplugin
16
- requirement: &70353598951320 !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-03-29 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ type: :runtime
22
+ requirement: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
24
+ requirements:
19
25
  - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 0.0.4
22
- type: :runtime
26
+ - !ruby/object:Gem::Version
27
+ hash: 23
28
+ segments:
29
+ - 1
30
+ - 0
31
+ - 0
32
+ version: 1.0.0
23
33
  prerelease: false
24
- version_requirements: *70353598951320
25
- - !ruby/object:Gem::Dependency
26
- name: rake
27
- requirement: &70353598950600 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
34
+ name: nagiosplugin
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
33
37
  type: :development
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
34
47
  prerelease: false
35
- version_requirements: *70353598950600
36
- - !ruby/object:Gem::Dependency
37
- name: cucumber
38
- requirement: &70353598949620 !ruby/object:Gem::Requirement
48
+ name: rake
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ type: :development
52
+ requirement: &id003 !ruby/object:Gem::Requirement
39
53
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 19
58
+ segments:
59
+ - 1
60
+ - 0
61
+ - 2
43
62
  version: 1.0.2
44
- type: :development
45
63
  prerelease: false
46
- version_requirements: *70353598949620
47
- - !ruby/object:Gem::Dependency
48
- name: aruba
49
- requirement: &70353598948300 !ruby/object:Gem::Requirement
64
+ name: cucumber
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ type: :development
68
+ requirement: &id004 !ruby/object:Gem::Requirement
50
69
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ - 4
77
+ - 6
54
78
  version: 0.4.6
55
- type: :development
56
79
  prerelease: false
57
- version_requirements: *70353598948300
58
- - !ruby/object:Gem::Dependency
59
- name: aruba-doubles
60
- requirement: &70353598947020 !ruby/object:Gem::Requirement
80
+ name: aruba
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
83
+ type: :development
84
+ requirement: &id005 !ruby/object:Gem::Requirement
61
85
  none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 23
90
+ segments:
91
+ - 0
92
+ - 2
93
+ - 0
65
94
  version: 0.2.0
66
- type: :development
67
95
  prerelease: false
68
- version_requirements: *70353598947020
69
- - !ruby/object:Gem::Dependency
70
- name: guard-cucumber
71
- requirement: &70353598945380 !ruby/object:Gem::Requirement
96
+ name: aruba-doubles
97
+ version_requirements: *id005
98
+ - !ruby/object:Gem::Dependency
99
+ type: :development
100
+ requirement: &id006 !ruby/object:Gem::Requirement
72
101
  none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 5
106
+ segments:
107
+ - 0
108
+ - 7
109
+ - 3
76
110
  version: 0.7.3
77
- type: :development
78
111
  prerelease: false
79
- version_requirements: *70353598945380
112
+ name: guard-cucumber
113
+ version_requirements: *id006
80
114
  description: Monitor the health of your ZFS pools with Nagios
81
- email:
115
+ email:
82
116
  - bjoernalbers@googlemail.com
83
- executables:
117
+ executables:
84
118
  - check_zfs
85
119
  extensions: []
120
+
86
121
  extra_rdoc_files: []
87
- files:
122
+
123
+ files:
88
124
  - .gitignore
89
- - .rvmrc
90
125
  - Gemfile
91
126
  - Guardfile
92
127
  - LICENSE
@@ -99,34 +134,37 @@ files:
99
134
  - lib/check_zfs.rb
100
135
  homepage: https://github.com/bjoernalbers/check_zfs
101
136
  licenses: []
137
+
102
138
  post_install_message:
103
139
  rdoc_options: []
104
- require_paths:
140
+
141
+ require_paths:
105
142
  - lib
106
- required_ruby_version: !ruby/object:Gem::Requirement
143
+ required_ruby_version: !ruby/object:Gem::Requirement
107
144
  none: false
108
- requirements:
109
- - - ! '>='
110
- - !ruby/object:Gem::Version
111
- version: '0'
112
- segments:
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ hash: 3
149
+ segments:
113
150
  - 0
114
- hash: 2903749538373985138
115
- required_rubygems_version: !ruby/object:Gem::Requirement
151
+ version: "0"
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
153
  none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: '0'
121
- segments:
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
122
159
  - 0
123
- hash: 2903749538373985138
160
+ version: "0"
124
161
  requirements: []
162
+
125
163
  rubyforge_project:
126
- rubygems_version: 1.8.10
164
+ rubygems_version: 1.8.11
127
165
  signing_key:
128
166
  specification_version: 3
129
- summary: check_zfs-0.1.1
130
- test_files:
167
+ summary: check_zfs-0.2.0
168
+ test_files:
131
169
  - features/check_zfs.feature
132
170
  - features/support/env.rb
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 1.9.2@check_zfs --create