nagiosplugin 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5bb7500269428bb2869fb2d1a2c072fb4211f98d
4
+ data.tar.gz: 68082b3cf61bb359310cd5503b0131a403632f80
5
+ SHA512:
6
+ metadata.gz: b0d12d8f990dd210ea2927d76c3727a5ff1d24c490a30489e8b986f3fb3dc585f6994d137fa790f291adc110897fd96800ecbc97e22bc3ed162115f70a4a2655
7
+ data.tar.gz: 4e8046957f75bac17ae00b663fdfc635da11eb244339dac15874c8f820845955be581952af3953a1d06710e169f136d8517f8473c86ff176030ceb89fa696056
data/README.md CHANGED
@@ -2,13 +2,9 @@
2
2
 
3
3
  The one Nagios Plugin framework, forged in the fires of Mount Doom.
4
4
 
5
+ [![Gem Version](https://badge.fury.io/rb/nagiosplugin.svg)](http://badge.fury.io/rb/nagiosplugin)
5
6
  [![Build Status](https://secure.travis-ci.org/bjoernalbers/nagiosplugin.png)](http://travis-ci.org/bjoernalbers/nagiosplugin)
6
7
 
7
- **NOTE: The API has changed since version 2.1 (see issues
8
- [#2](https://github.com/bjoernalbers/nagiosplugin/issues/2)
9
- and
10
- [#4](https://github.com/bjoernalbers/nagiosplugin/issues/4))!!!**
11
-
12
8
  ## Introduction
13
9
 
14
10
  NagiosPlugin is an
@@ -66,7 +62,7 @@ doesn't use that either), parse CLI options, etc.
66
62
  ### Step 2: Provide some context via status message (optionally).
67
63
 
68
64
  Ask yourself what might be important to know (and fits into a text
69
- message) when Nagios just send you an alert in the middle of the night.
65
+ message) when Nagios send you an alert in the middle of the night.
70
66
 
71
67
  ```Ruby
72
68
  def message
@@ -78,12 +74,16 @@ end
78
74
 
79
75
  ### Step 3: Perform the actual check.
80
76
 
81
- In your binary then call the build-in class method `check` and you're done:
77
+ In your binary then just call the build-in class method `check` and you're done:
82
78
 
83
79
  ```Ruby
84
- MyFancyPlugin.check
80
+ MyFancyPlugin.check(options)
85
81
  ```
86
82
 
83
+ (Optional arguments, i.e. from your favorite [CLI option
84
+ parser](https://www.ruby-toolbox.com/categories/CLI_Option_Parsers), will be
85
+ forwarded to you initializer method.)
86
+
87
87
  This will output the check result and exits in compliance with the
88
88
  official
89
89
  [Nagios plug-in development
@@ -93,17 +93,6 @@ If anything funky happens in your code: NagiosPlugin does a "blind
93
93
  rescue mission" and transforms any execptions to an unknown status.
94
94
 
95
95
 
96
- ## One more thing...
97
-
98
- The API changed completely compared to v1.3 as well as the default command
99
- line options (they are gone).
100
- I suggest that you use 3rd party [CLI Option
101
- Parsers](https://www.ruby-toolbox.com/categories/CLI_Option_Parsers)
102
- because everyone has different preferences on this.
103
-
104
- Please let me know if you find this usefull or if you want to contribute!
105
-
106
-
107
96
  ## Note on Patches/Pull Requests
108
97
 
109
98
  * Fork the project and run `bundle install` to resolve all development
@@ -8,8 +8,8 @@ module NagiosPlugin
8
8
  }
9
9
 
10
10
  class << self
11
- def check
12
- plugin = new
11
+ def check(*args)
12
+ plugin = new(*args)
13
13
  puts plugin.nagios_plugin_output
14
14
  exit plugin.nagios_plugin_exit_code
15
15
  rescue => e
@@ -1,3 +1,3 @@
1
1
  module NagiosPlugin
2
- VERSION = '2.1.1'
2
+ VERSION = '2.2.0'
3
3
  end
data/nagiosplugin.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.name = 'nagiosplugin'
8
8
  spec.version = NagiosPlugin::VERSION
9
9
  spec.authors = ['Björn Albers']
10
- spec.email = ['bjoernalbers@googlemail.com']
10
+ spec.email = ['bjoernalbers@gmail.com']
11
11
  spec.homepage = 'https://github.com/bjoernalbers/nagiosplugin'
12
12
  spec.summary = "#{spec.name}-#{spec.version}"
13
13
  spec.description = 'The one Nagios Plugin framework, forged in the fires of Mount Doom.'
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'cucumber'
23
23
  spec.add_development_dependency 'aruba'
24
24
  spec.add_development_dependency 'guard-cucumber'
25
- spec.add_development_dependency 'rspec'
25
+ spec.add_development_dependency 'rspec', '~> 3.1'
26
26
  spec.add_development_dependency 'guard-rspec'
27
27
  end
@@ -6,31 +6,38 @@ module NagiosPlugin
6
6
 
7
7
  describe '.check' do
8
8
  before do
9
- plugin.stub(:nagios_plugin_exit_code => nil,
10
- :nagios_plugin_output => nil)
11
- Plugin.stub(:puts => nil,
12
- :exit => nil,
13
- :new => plugin)
9
+ allow(plugin).to receive_messages(
10
+ nagios_plugin_exit_code: nil,
11
+ nagios_plugin_output: nil)
12
+ allow(Plugin).to receive_messages(
13
+ puts: nil,
14
+ exit: nil,
15
+ new: plugin)
14
16
  end
15
17
 
16
18
  it 'displays the plugin output on stdout' do
17
- plugin.should_receive(:nagios_plugin_output).
19
+ allow(plugin).to receive(:nagios_plugin_output).
18
20
  and_return('chunky bacon')
19
- Plugin.should_receive(:puts).with('chunky bacon')
20
21
  Plugin.check
22
+ expect(Plugin).to have_received(:puts).with('chunky bacon')
21
23
  end
22
24
 
23
25
  it 'exits with the status exit code' do
24
- plugin.should_receive(:nagios_plugin_exit_code).and_return(42)
25
- Plugin.should_receive(:exit).with(42)
26
+ allow(plugin).to receive(:nagios_plugin_exit_code).and_return(42)
26
27
  Plugin.check
28
+ expect(Plugin).to have_received(:exit).with(42)
29
+ end
30
+
31
+ it 'passed all arguments to the initializer' do
32
+ Plugin.check(42, fancy: true)
33
+ expect(Plugin).to have_received(:new).with(42, fancy: true)
27
34
  end
28
35
 
29
36
  context 'when an exception was raised' do
30
- let(:exception) { StandardError.new }
37
+ let(:exception) { StandardError.new('Oops!') }
31
38
 
32
39
  before do
33
- Plugin.stub(:new).and_return { raise 'Oops!' }
40
+ allow(Plugin).to receive(:new).and_raise(exception)
34
41
  end
35
42
 
36
43
  it 'rescues the exception' do
@@ -38,16 +45,16 @@ module NagiosPlugin
38
45
  end
39
46
 
40
47
  it 'exits with exit code unknown' do
41
- Plugin.should_receive(:exit).with(3)
42
48
  Plugin.check
49
+ expect(Plugin).to have_received(:exit).with(3)
43
50
  end
44
51
 
45
52
  it 'displays the exception and backtrace on stdout' do
46
- StandardError.any_instance.stub(:backtrace).
47
- and_return(%w(Chunky Bacon))
48
- Plugin.should_receive(:puts).
49
- with("PLUGIN UNKNOWN: Oops!\n\nChunky\nBacon")
53
+ allow(StandardError).to receive(:new).and_return(exception)
54
+ allow(exception).to receive(:backtrace).and_return(%w(Chunky Bacon))
50
55
  Plugin.check
56
+ expect(Plugin).to have_received(:puts).
57
+ with("PLUGIN UNKNOWN: Oops!\n\nChunky\nBacon")
51
58
  end
52
59
  end
53
60
  end
@@ -68,28 +75,40 @@ module NagiosPlugin
68
75
 
69
76
  describe '#nagios_plugin_status' do
70
77
  it 'returns unknown when not critical, warning or ok' do
71
- plugin.stub(:critical? => false, :warning? => false, :ok? => false)
78
+ allow(plugin).to receive_messages(
79
+ critical?: false,
80
+ warning?: false,
81
+ ok?: false)
72
82
  expect(plugin.send(:nagios_plugin_status)).to eq(:unknown)
73
83
  end
74
84
 
75
85
  it 'returns critical when critical' do
76
- plugin.stub(:critical? => true, :warning? => true, :ok? => true)
86
+ allow(plugin).to receive_messages(
87
+ critical?: true,
88
+ warning?: true,
89
+ ok?: true)
77
90
  expect(plugin.send(:nagios_plugin_status)).to eq(:critical)
78
91
  end
79
92
 
80
93
  it 'returns warning when warning but not critical' do
81
- plugin.stub(:critical? => false, :warning? => true, :ok? => true)
94
+ allow(plugin).to receive_messages(
95
+ critical?: false,
96
+ warning?: true,
97
+ ok?: true)
82
98
  expect(plugin.send(:nagios_plugin_status)).to eq(:warning)
83
99
  end
84
100
 
85
101
  it 'returns ok when ok but not critical or warning' do
86
- plugin.stub(:critical? => false, :warning? => false, :ok? => true)
102
+ allow(plugin).to receive_messages(
103
+ critical?: false,
104
+ warning?: false,
105
+ ok?: true)
87
106
  expect(plugin.send(:nagios_plugin_status)).to eq(:ok)
88
107
  end
89
108
 
90
- it 'saves the status' do
109
+ it 'caches the status' do
91
110
  [:critical?, :warning?, :ok?].each do |check|
92
- plugin.should_receive(check).once.and_return(false)
111
+ allow(plugin).to receive(check).once.and_return(false)
93
112
  end
94
113
  expect(plugin.send(:nagios_plugin_status)).to eq(:unknown)
95
114
  expect(plugin.send(:nagios_plugin_status)).to eq(:unknown)
@@ -98,44 +117,44 @@ module NagiosPlugin
98
117
 
99
118
  describe '#nagios_plugin_exit_code' do
100
119
  it 'returns 3 when unknown' do
101
- plugin.should_receive(:nagios_plugin_status).and_return(:unknown)
120
+ allow(plugin).to receive(:nagios_plugin_status).and_return(:unknown)
102
121
  expect(plugin.send(:nagios_plugin_exit_code)).to eq(3)
103
122
  end
104
123
 
105
124
  it 'returns 2 when critical' do
106
- plugin.should_receive(:nagios_plugin_status).and_return(:critical)
125
+ allow(plugin).to receive(:nagios_plugin_status).and_return(:critical)
107
126
  expect(plugin.send(:nagios_plugin_exit_code)).to eq(2)
108
127
  end
109
128
 
110
129
  it 'returns 1 when warning' do
111
- plugin.should_receive(:nagios_plugin_status).and_return(:warning)
130
+ allow(plugin).to receive(:nagios_plugin_status).and_return(:warning)
112
131
  expect(plugin.send(:nagios_plugin_exit_code)).to eq(1)
113
132
  end
114
133
 
115
134
  it 'returns 0 when ok' do
116
- plugin.should_receive(:nagios_plugin_status).and_return(:ok)
135
+ allow(plugin).to receive(:nagios_plugin_status).and_return(:ok)
117
136
  expect(plugin.send(:nagios_plugin_exit_code)).to eq(0)
118
137
  end
119
138
  end
120
139
 
121
140
  describe '#nagios_plugin_output' do
122
141
  before do
123
- plugin.stub(:nagios_plugin_status)
142
+ allow(plugin).to receive(:nagios_plugin_status)
124
143
  end
125
144
 
126
145
  it 'joins the service name and the upcased status' do
127
- plugin.should_receive(:nagios_plugin_service).and_return('FRIED')
128
- plugin.should_receive(:nagios_plugin_status).and_return(:chicken)
146
+ allow(plugin).to receive(:nagios_plugin_service).and_return('FRIED')
147
+ allow(plugin).to receive(:nagios_plugin_status).and_return(:chicken)
129
148
  expect(plugin.send(:nagios_plugin_output)).to match(/^FRIED CHICKEN$/)
130
149
  end
131
150
 
132
151
  it 'includes a custom plugin message if present' do
133
- plugin.stub(:message => 'ALL U CAN EAT!')
152
+ allow(plugin).to receive(:message).and_return('ALL U CAN EAT!')
134
153
  expect(plugin.send(:nagios_plugin_output)).to match(/: ALL U CAN EAT!$/)
135
154
  end
136
155
 
137
- it 'should not append message if message is empty' do
138
- plugin.stub(:message => '')
156
+ it 'does not append message if message is empty' do
157
+ allow(plugin).to receive(:message).and_return('')
139
158
  expect(plugin.send(:nagios_plugin_output)).not_to match(/:/)
140
159
  end
141
160
 
metadata CHANGED
@@ -1,115 +1,102 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nagiosplugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
5
- prerelease:
4
+ version: 2.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Björn Albers
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-12 00:00:00.000000000 Z
11
+ date: 2014-11-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: cucumber
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: aruba
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: guard-cucumber
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
- version: '0'
75
+ version: '3.1'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
- version: '0'
82
+ version: '3.1'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: guard-rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  description: The one Nagios Plugin framework, forged in the fires of Mount Doom.
111
98
  email:
112
- - bjoernalbers@googlemail.com
99
+ - bjoernalbers@gmail.com
113
100
  executables: []
114
101
  extensions: []
115
102
  extra_rdoc_files: []
@@ -130,34 +117,27 @@ files:
130
117
  homepage: https://github.com/bjoernalbers/nagiosplugin
131
118
  licenses:
132
119
  - MIT
120
+ metadata: {}
133
121
  post_install_message:
134
122
  rdoc_options: []
135
123
  require_paths:
136
124
  - lib
137
125
  required_ruby_version: !ruby/object:Gem::Requirement
138
- none: false
139
126
  requirements:
140
- - - ! '>='
127
+ - - ">="
141
128
  - !ruby/object:Gem::Version
142
129
  version: '0'
143
- segments:
144
- - 0
145
- hash: -4572774117514092169
146
130
  required_rubygems_version: !ruby/object:Gem::Requirement
147
- none: false
148
131
  requirements:
149
- - - ! '>='
132
+ - - ">="
150
133
  - !ruby/object:Gem::Version
151
134
  version: '0'
152
- segments:
153
- - 0
154
- hash: -4572774117514092169
155
135
  requirements: []
156
136
  rubyforge_project:
157
- rubygems_version: 1.8.23
137
+ rubygems_version: 2.2.2
158
138
  signing_key:
159
- specification_version: 3
160
- summary: nagiosplugin-2.1.1
139
+ specification_version: 4
140
+ summary: nagiosplugin-2.2.0
161
141
  test_files:
162
142
  - features/nagiosplugin_usage.feature
163
143
  - features/support/env.rb