nagios_helper 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/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ log
2
+ TODO
3
+ locks
4
+ *.gem
5
+ Gemfile.lock
6
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source :rubygems
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 Makarchev K
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,72 @@
1
+ NagiosHelper
2
+ ============
3
+
4
+ Rails gem for writing, testing, executing Nagios checks inside Rails application.
5
+ Checks running throught http or binary(nrpe).
6
+
7
+ ```
8
+ gem 'nagios_helper'
9
+ ```
10
+
11
+ $ rails generate nagios:check some
12
+
13
+ Check example:
14
+ --------------
15
+
16
+ app/nagios/some.rb
17
+
18
+ ```ruby
19
+ class Nagios::Some < Nagios::Check
20
+ params :x
21
+
22
+ def execute
23
+ count = User.count + x.to_i
24
+
25
+ warn "hmmm" if count < 10
26
+ crit "ouch" if count < 5
27
+
28
+ ok "good #{count}"
29
+ end
30
+
31
+ end
32
+ ```
33
+
34
+ Run:
35
+
36
+ $ RAILS_ENV=production bundle exec nagios_check some x 1
37
+
38
+ ### Nagios Check Initilizers:
39
+ All files in app/nagios/initializers will auto loads.
40
+
41
+ Server:
42
+ -------
43
+
44
+ ### Inside rails server
45
+
46
+ Create controller: app/controllers/nagios_controller.rb
47
+
48
+ ```ruby
49
+ class NagiosController < ApplicationController
50
+
51
+ def check
52
+ status, message = Nagios::Runner.check(params)
53
+
54
+ respond_to do |f|
55
+ f.html{ status + "," + message }
56
+ end
57
+ end
58
+
59
+ end
60
+ ```
61
+
62
+ $ curl localhost:3000/nagios/check?method=some&x=1
63
+
64
+ ### Outside rails server
65
+
66
+ With using nonblocking EM-server [nagios_rails_server](http://github.com/kostya/nagios_rails_server)
67
+
68
+ AR connections should be configured with pool: 100.
69
+
70
+ $ RAILS_ENV=production bundle exec nagios_server
71
+ $ curl localhost:9292/check/some?x=1
72
+
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'bundler'
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ require 'rspec/core/rake_task'
7
+ task :default => :spec
8
+ RSpec::Core::RakeTask.new(:spec)
data/bin/nagios_check ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), %w{.. lib})))
3
+ require 'nagios_helper/boot'
4
+
5
+ raise "RAILS_ROOT not found" unless defined?(RAILS_ROOT)
6
+ require File.expand_path(File.join(RAILS_ROOT, %w{config environment}))
7
+
8
+ require 'nagios_helper/runner_async'
9
+
10
+ class Array
11
+ # define an iterator over each pair of indexes in an array
12
+ def each_pair_index
13
+ (0..(self.length-1)).each do |i|
14
+ ((i+1)..(self.length-1 )).each do |j|
15
+ yield i, j
16
+ end
17
+ end
18
+ end
19
+
20
+ # define an iterator over each pair of values in an array for easy reuse
21
+ def each_pair
22
+ self.each_pair_index do |i, j|
23
+ yield self[i], self[j]
24
+ end
25
+ end
26
+ end
27
+
28
+ method = ARGV.shift
29
+ params = {}
30
+ ARGV.each_pair{|a, b| params[a.to_s.gsub('-', '')] = b }
31
+
32
+ status, message = Nagios::RunnerAsync.check(params.merge(:method => method))
33
+
34
+ puts message
35
+ exit status
@@ -0,0 +1,15 @@
1
+ # for Rails 3
2
+ if Rails::VERSION::MAJOR >= 3
3
+
4
+ module Nagios
5
+ class CheckEmGenerator < Rails::Generators::NamedBase
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def add_files
9
+ template "script_class_em.rb", "app/nagios/#{file_path}.rb"
10
+ template "spec.rb", "spec/nagios/#{file_path}_spec.rb"
11
+ end
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,15 @@
1
+ # for Rails 3
2
+ if Rails::VERSION::MAJOR >= 3
3
+
4
+ module Nagios
5
+ class CheckGenerator < Rails::Generators::NamedBase
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def add_files
9
+ template "script_class.rb", "app/nagios/#{file_path}.rb"
10
+ template "spec.rb", "spec/nagios/#{file_path}_spec.rb"
11
+ end
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,14 @@
1
+ # for Rails 2.3
2
+ if Rails::VERSION::MAJOR == 2
3
+
4
+ class NagiosEmGenerator < Rails::Generator::NamedBase
5
+ def manifest
6
+ record do |m|
7
+ m.template "script_class_em.rb", "app/nagios/#{file_path}.rb"
8
+ m.directory "spec/nagios"
9
+ m.template "spec.rb", "spec/nagios/#{file_path}_spec.rb"
10
+ end
11
+ end
12
+ end
13
+
14
+ end
@@ -0,0 +1,14 @@
1
+ # for Rails 2.3
2
+ if Rails::VERSION::MAJOR == 2
3
+
4
+ class NagiosGenerator < Rails::Generator::NamedBase
5
+ def manifest
6
+ record do |m|
7
+ m.template "script_class.rb", "app/nagios/#{file_path}.rb"
8
+ m.directory "spec/nagios"
9
+ m.template "spec.rb", "spec/nagios/#{file_path}_spec.rb"
10
+ end
11
+ end
12
+ end
13
+
14
+ end
@@ -0,0 +1,11 @@
1
+ class Nagios::<%= class_name %> < Nagios::Check
2
+ # You can define script parameters this way:
3
+ params :x
4
+
5
+ def execute
6
+ warn "hmmm" if x == 'w'
7
+ crit "ouch" if x == 'c'
8
+ ok "good"
9
+ end
10
+
11
+ end
@@ -0,0 +1,17 @@
1
+ class Nagios::<%= class_name %> < Nagios::CheckEM
2
+ # You can define script parameters this way:
3
+ params :x # and can use further just x
4
+
5
+ def execute
6
+ EM.next_tick do
7
+ safe do
8
+ warn "hmmm" if x == 'w'
9
+ crit "ouch" if x == 'c'
10
+ ok "good"
11
+
12
+ send_result # should be!, for sending results
13
+ end
14
+ end
15
+ end
16
+
17
+ end
@@ -0,0 +1,10 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require 'nagios_check/spec_helper'
3
+
4
+ describe Nagios::<%= class_name %> do
5
+ it 'should be ok' do
6
+ status, message = Nagios::<%= class_name %>.check({:x => 'some'})
7
+ status.should == Nagios::OK
8
+ message.should include('good')
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ if !defined?(RAILS_ROOT)
2
+ if ENV['BUNDLE_GEMFILE']
3
+ RAILS_ROOT = File.expand_path File.dirname(ENV['BUNDLE_GEMFILE'])
4
+ end
5
+ end
@@ -0,0 +1,100 @@
1
+ class Nagios::Check
2
+
3
+ TYPES = %w{ok crit other warn} unless defined?(TYPES)
4
+
5
+ def initialize(params, &callback)
6
+ @params = params.with_indifferent_access
7
+ @callback = callback
8
+ @started_at = Time.now
9
+ @tag = "#{self.class.name}/#{params.inspect}"
10
+
11
+ logger.info "=> #{@tag}"
12
+
13
+ @ok = []
14
+ @crit = []
15
+ @warn = []
16
+ @other = []
17
+ end
18
+
19
+ def result
20
+ errors = [@crit, @warn, @other].flatten * '; '
21
+
22
+ if @crit.present?
23
+ [Nagios::CRIT, "CRIT: " + errors]
24
+ elsif @warn.present?
25
+ [Nagios::WARN, "WARN: " + errors]
26
+ elsif @other.present?
27
+ [Nagios::OTHER, errors]
28
+ else
29
+ [Nagios::OK, "OK: " + @ok * '; ']
30
+ end
31
+ end
32
+
33
+ def run
34
+ safe do
35
+ execute
36
+ send_result
37
+ end
38
+ end
39
+
40
+ # synchrony check, for manually calls
41
+ def self.check(params = {})
42
+ result = nil
43
+
44
+ inst = self.new(params) do |res|
45
+ result = res
46
+ end
47
+
48
+ inst.run
49
+ end
50
+
51
+ def self.default_error(mes)
52
+ [Nagios::OTHER, mes]
53
+ end
54
+
55
+ protected
56
+
57
+ def send_result
58
+ st, mes = res = self.result
59
+
60
+ logger.info "<= #{@tag} = [#{Nagios.status_name(st)}, #{mes}], time: (#{Time.now - @started_at})"
61
+ @callback[ res ]
62
+
63
+ res
64
+ end
65
+
66
+ def execute
67
+ raise "realize me"
68
+ end
69
+
70
+ TYPES.each do |m|
71
+ define_method(m) do |mes|
72
+ instance_variable_get("@#{m}") << mes
73
+ end
74
+ end
75
+ alias :critical :crit
76
+ alias :error :crit
77
+ alias :warning :warn
78
+
79
+ def self.logger
80
+ Nagios.logger
81
+ end
82
+
83
+ def logger
84
+ Nagios.logger
85
+ end
86
+
87
+ def self.params(*syms)
88
+ syms.each { |s| define_method(s) { @params[s] } }
89
+ end
90
+
91
+ def safe
92
+ yield
93
+ rescue Exception, NameError, Timeout::Error => ex
94
+ logger.info "X= #{@tag} #{ex.message} (#{ex.backtrace.inspect})"
95
+
96
+ other "Exception: " + ex.message
97
+ send_result
98
+ end
99
+
100
+ end
@@ -0,0 +1,41 @@
1
+ class Nagios::CheckEM < Nagios::Check
2
+
3
+ def run
4
+ safe do
5
+ execute
6
+ end
7
+ end
8
+
9
+ def execute
10
+ send_result
11
+ end
12
+
13
+ def safe_defer
14
+ EM.defer do
15
+ safe do
16
+ yield
17
+ end
18
+ end
19
+ end
20
+
21
+ # synchrony check, for manually calls
22
+ # do not call in thin!!!
23
+ def self.check(params = {})
24
+ result = nil
25
+
26
+ EM.run do
27
+ inst = self.new(params) do |res|
28
+ begin
29
+ result = res
30
+ ensure
31
+ EM.stop
32
+ end
33
+ end
34
+
35
+ inst.run
36
+ end
37
+
38
+ result
39
+ end
40
+
41
+ end
@@ -0,0 +1,78 @@
1
+ class Nagios::Runner
2
+
3
+ def initialize(params, &callback)
4
+ @params = params.with_indifferent_access
5
+ @callback = callback
6
+ @method = @params.delete(:method).to_s
7
+ @method = @method.gsub(/[^_\.\-a-z0-9]/i, '')
8
+ @klass_name = "Nagios::#{@method.camelize}"
9
+
10
+ raise "method should be" if @method.blank?
11
+
12
+ Nagios.mutex.synchronize{ load_initializers }
13
+ load_class
14
+
15
+ run
16
+ rescue Exception, Timeout::Error => ex
17
+ Nagios.logger.info "T= #{params.inspect} #{ex.message} (#{ex.backtrace.inspect})"
18
+ callback[ Nagios::Check.default_error(ex.message) ]
19
+ end
20
+
21
+ # synchrony check, for manual call
22
+ def self.check(params = {})
23
+ result = nil
24
+
25
+ self.new(params) do |res|
26
+ result = res
27
+ end
28
+
29
+ result
30
+ end
31
+
32
+ protected
33
+
34
+ def constantize
35
+ @klass_name.constantize
36
+ rescue LoadError, NameError
37
+ nil
38
+ end
39
+
40
+ def load_initializers
41
+ unless Nagios.project_initializer_loaded
42
+ Dir[Nagios.rails_root + "/app/nagios/initializers/*.rb"].each do |file|
43
+ require File.expand_path(file)
44
+ end
45
+
46
+ Nagios.project_initializer_loaded = true
47
+ end
48
+ end
49
+
50
+ def load_class
51
+ klass = constantize
52
+
53
+ unless klass
54
+ Dir[Nagios.rails_root + "/app/nagios/**/#{@method}.rb"].each do |file|
55
+ require File.expand_path(file)
56
+ end
57
+
58
+ klass = constantize
59
+ end
60
+
61
+ raise "unknown klass #{@klass_name}" unless klass
62
+
63
+ @klass = klass
64
+ @ancestor = klass.ancestors.detect{|an| an == Nagios::Check || an == Nagios::CheckEM }
65
+ end
66
+
67
+ def run
68
+ if @ancestor == Nagios::Check
69
+ script = @klass.new(@params, &@callback)
70
+ script.run
71
+ elsif @ancestor == Nagios::CheckEM
72
+ raise "cant run EM check in Sync Runner"
73
+ else
74
+ raise "unknown klass #{@klass.inspect}"
75
+ end
76
+ end
77
+
78
+ end
@@ -0,0 +1,43 @@
1
+ require 'eventmachine'
2
+
3
+ class Nagios::RunnerAsync < Nagios::Runner
4
+
5
+ # synchrony check, for manual call
6
+ # do not run in EM
7
+ def self.check(params = {})
8
+ raise "cant check sync in running EM" if EM.reactor_running?
9
+
10
+ result = nil
11
+ EM.run do
12
+ self.new(params) do |res|
13
+ begin
14
+ result = res
15
+ ensure
16
+ EM.stop
17
+ end
18
+ end
19
+ end
20
+
21
+ result
22
+ end
23
+
24
+ protected
25
+
26
+ def run
27
+ if @ancestor == Nagios::Check
28
+ # to thread pool
29
+ EM.defer do
30
+ script = @klass.new(@params, &@callback)
31
+ script.run
32
+ end
33
+
34
+ elsif @ancestor == Nagios::CheckEM
35
+ script = @klass.new(@params, &@callback)
36
+ script.run
37
+
38
+ else
39
+ raise "unknown klass #{klass.inspect}"
40
+ end
41
+ end
42
+
43
+ end
@@ -0,0 +1,9 @@
1
+ if defined?(RAILS_ENV) && RAILS_ENV['test']
2
+
3
+ module EM
4
+ def self.defer
5
+ yield
6
+ end
7
+ end
8
+
9
+ end
@@ -0,0 +1,61 @@
1
+ require 'active_support'
2
+ require 'active_support/inflector'
3
+ begin
4
+ require 'active_support/core_ext/object/blank'
5
+ rescue LoadError
6
+ end
7
+ require 'active_support/core_ext/hash/indifferent_access'
8
+ require 'logger'
9
+ require 'timeout'
10
+
11
+ module Nagios
12
+ OK = 0
13
+ WARN = 1
14
+ CRIT = 2
15
+ OTHER = 3
16
+
17
+ CONCURRENCY_LEVEL = 100 # for server
18
+
19
+ STATUS_NAMES = {
20
+ OK => 'ok',
21
+ WARN => 'warn',
22
+ CRIT => 'crit',
23
+ OTHER => 'other'
24
+ }
25
+
26
+ class << self
27
+ def logger
28
+ @logger ||= Logger.new(File.join(rails_root, "/log/nagios.log")).tap do |logger|
29
+ logger.formatter = lambda { |s, d, p, m| "#{d.strftime("%d.%m.%Y %H:%M:%S")} #{m}\n" }
30
+ end
31
+ end
32
+
33
+ attr_accessor :project_initializer_loaded
34
+
35
+ def concurrency_level
36
+ @concurrency_level
37
+ end
38
+
39
+ def mutex
40
+ @mutex ||= Mutex.new
41
+ end
42
+
43
+ def concurrency_level=(cl)
44
+ @concurrency_level = cl
45
+ EM.threadpool_size = cl
46
+ end
47
+
48
+ def status_name(status)
49
+ ':' + STATUS_NAMES[status] || 'unknown'
50
+ end
51
+
52
+ def rails_root
53
+ defined?(RAILS_ROOT) ? RAILS_ROOT : (defined?(Rails) ? Rails.root : nil)
54
+ end
55
+ end
56
+
57
+ autoload :Check, 'nagios_helper/check'
58
+ autoload :CheckEM, 'nagios_helper/check_em'
59
+ autoload :Runner, 'nagios_helper/runner'
60
+ autoload :RunnerAsync, 'nagios_helper/runner_async'
61
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ #require File.dirname(__FILE__) + "/lib/bin_script/version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = %q{nagios_helper}
6
+ s.version = "0.1.1"
7
+
8
+ s.authors = ["Makarchev Konstantin"]
9
+
10
+ s.description = %q{Rails gem for writing, testing, executing nagios checks inside Rails application. Checks running throught http or binary(nrpe).}
11
+ s.summary = %q{Rails gem for writing, testing, executing nagios checks inside Rails application. Checks running throught http or binary(nrpe).}
12
+
13
+ s.email = %q{kostya27@gmail.com}
14
+ s.homepage = %q{http://github.com/kostya/nagios_helper}
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency 'activesupport'
22
+ s.add_dependency 'eventmachine'
23
+
24
+ s.add_development_dependency "rspec"
25
+ s.add_development_dependency "rake"
26
+
27
+ end
@@ -0,0 +1,106 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Nagios::Runner" do
4
+ it "run ok" do
5
+ @status, @message = Nagios::Runner.check({'method' => "bla"})
6
+ @status.should == Nagios::OK
7
+ @message.should include('a5')
8
+ end
9
+
10
+ it "run ok method with indefferent access" do
11
+ @status, @message = Nagios::Runner.check({:method => "bla"})
12
+ @status.should == Nagios::OK
13
+ @message.should include('a5')
14
+ end
15
+
16
+ it "undefined klass" do
17
+ @status, @message = Nagios::Runner.check({'method' => "blah"})
18
+ @status.should == Nagios::OTHER
19
+ @message.should include('Nagios::Blah')
20
+ end
21
+
22
+ it "empty class" do
23
+ @status, @message = Nagios::Runner.check({})
24
+ @status.should == Nagios::OTHER
25
+ @message.should include('method should')
26
+ end
27
+
28
+ describe "check" do
29
+ it "crit" do
30
+ @status, @message = Nagios::Runner.check({'method' => "bla", 's' => 'crit'})
31
+ @status.should == Nagios::CRIT
32
+ @message.should include('a1')
33
+ end
34
+
35
+ it "warn" do
36
+ @status, @message = Nagios::Runner.check({'method' => "bla", 's' => 'warn'})
37
+ @status.should == Nagios::WARN
38
+ @message.should include('a2')
39
+ end
40
+
41
+ it "raise" do
42
+ @status, @message = Nagios::Runner.check({'method' => "bla", 's' => 'raise'})
43
+ @status.should == Nagios::OTHER
44
+ @message.should include('a3')
45
+ end
46
+
47
+ it "other" do
48
+ @status, @message = Nagios::Runner.check({'method' => "bla", 's' => 'other'})
49
+ @status.should == Nagios::OTHER
50
+ @message.should include('a4')
51
+ end
52
+
53
+ it "ok" do
54
+ @status, @message = Nagios::Runner.check({'method' => "bla", 's' => 'ok'})
55
+ @status.should == Nagios::OK
56
+ @message.should include('a5')
57
+ end
58
+
59
+ it "crit_warn" do
60
+ @status, @message = Nagios::Runner.check({'method' => "bla", 's' => 'crit_warn'})
61
+ @status.should == Nagios::CRIT
62
+ @message.should include('a1')
63
+ @message.should include('a2')
64
+ end
65
+ end
66
+
67
+ describe "check_em" do
68
+ it "crit" do
69
+ @status, @message = Nagios::RunnerAsync.check({'method' => "bla_em", 's' => 'crit'})
70
+ @status.should == Nagios::CRIT
71
+ @message.should include('b1')
72
+ end
73
+
74
+ it "warn" do
75
+ @status, @message = Nagios::RunnerAsync.check({'method' => "bla_em", 's' => 'warn'})
76
+ @status.should == Nagios::WARN
77
+ @message.should include('b2')
78
+ end
79
+
80
+ it "raise" do
81
+ @status, @message = Nagios::RunnerAsync.check({'method' => "bla_em", 's' => 'raise'})
82
+ @status.should == Nagios::OTHER
83
+ @message.should include('b3')
84
+ end
85
+
86
+ it "other" do
87
+ @status, @message = Nagios::RunnerAsync.check({'method' => "bla_em", 's' => 'other'})
88
+ @status.should == Nagios::OTHER
89
+ @message.should include('b4')
90
+ end
91
+
92
+ it "ok" do
93
+ @status, @message = Nagios::RunnerAsync.check({'method' => "bla_em", 's' => 'ok'})
94
+ @status.should == Nagios::OK
95
+ @message.should include('b5')
96
+ end
97
+
98
+ it "crit_warn" do
99
+ @status, @message = Nagios::RunnerAsync.check({'method' => "bla_em", 's' => 'crit_warn'})
100
+ @status.should == Nagios::CRIT
101
+ @message.should include('b1')
102
+ @message.should include('b2')
103
+ end
104
+ end
105
+
106
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ class Nagios::Bla < Nagios::Check
4
+ params :s
5
+
6
+ def execute
7
+ crit 'a1' if s == 'crit' || s == 'crit_warn'
8
+ warn 'a2' if s == 'warn' || s == 'crit_warn'
9
+ raise 'a3' if s == 'raise'
10
+ other 'a4' if s == 'other'
11
+ ok 'a5'
12
+ end
13
+
14
+ end
15
+
16
+ class Nagios::BlaEm < Nagios::CheckEM
17
+
18
+ params :s
19
+
20
+ def execute
21
+ crit 'b1' if s == 'crit' || s == 'crit_warn'
22
+ warn 'b2' if s == 'warn' || s == 'crit_warn'
23
+ raise 'b3' if s == 'raise'
24
+ other 'b4' if s == 'other'
25
+ ok 'b5'
26
+
27
+ send_result
28
+ end
29
+
30
+ end
@@ -0,0 +1,13 @@
1
+ require 'rubygems'
2
+ require "bundler"
3
+ Bundler.setup
4
+ ENV['RAILS_ENV'] ||= 'test'
5
+
6
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
7
+ require 'nagios_check'
8
+
9
+ require 'nagios_support'
10
+
11
+ def Nagios.rails_root
12
+ File.join(File.dirname(__FILE__), %w{ .. })
13
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nagios_helper
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
11
+ platform: ruby
12
+ authors:
13
+ - Makarchev Konstantin
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-09-15 00:00:00 +04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 3
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ prerelease: false
32
+ type: :runtime
33
+ requirement: *id001
34
+ name: activesupport
35
+ - !ruby/object:Gem::Dependency
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ hash: 3
42
+ segments:
43
+ - 0
44
+ version: "0"
45
+ prerelease: false
46
+ type: :runtime
47
+ requirement: *id002
48
+ name: eventmachine
49
+ - !ruby/object:Gem::Dependency
50
+ version_requirements: &id003 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ prerelease: false
60
+ type: :development
61
+ requirement: *id003
62
+ name: rspec
63
+ - !ruby/object:Gem::Dependency
64
+ version_requirements: &id004 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ hash: 3
70
+ segments:
71
+ - 0
72
+ version: "0"
73
+ prerelease: false
74
+ type: :development
75
+ requirement: *id004
76
+ name: rake
77
+ description: Rails gem for writing, testing, executing nagios checks inside Rails application. Checks running throught http or binary(nrpe).
78
+ email: kostya27@gmail.com
79
+ executables:
80
+ - nagios_check
81
+ extensions: []
82
+
83
+ extra_rdoc_files: []
84
+
85
+ files:
86
+ - .gitignore
87
+ - Gemfile
88
+ - LICENSE
89
+ - README.md
90
+ - Rakefile
91
+ - bin/nagios_check
92
+ - lib/generators/nagios/check_em_generator.rb
93
+ - lib/generators/nagios/check_generator.rb
94
+ - lib/generators/nagios/nagios_em_generator.rb
95
+ - lib/generators/nagios/nagios_generator.rb
96
+ - lib/generators/nagios/templates/script_class.rb
97
+ - lib/generators/nagios/templates/script_class_em.rb
98
+ - lib/generators/nagios/templates/spec.rb
99
+ - lib/nagios_helper.rb
100
+ - lib/nagios_helper/boot.rb
101
+ - lib/nagios_helper/check.rb
102
+ - lib/nagios_helper/check_em.rb
103
+ - lib/nagios_helper/runner.rb
104
+ - lib/nagios_helper/runner_async.rb
105
+ - lib/nagios_helper/spec_helper.rb
106
+ - nagios_helper.gemspec
107
+ - spec/nagios_spec.rb
108
+ - spec/nagios_support.rb
109
+ - spec/spec_helper.rb
110
+ has_rdoc: true
111
+ homepage: http://github.com/kostya/nagios_helper
112
+ licenses: []
113
+
114
+ post_install_message:
115
+ rdoc_options: []
116
+
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ hash: 3
125
+ segments:
126
+ - 0
127
+ version: "0"
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 3
134
+ segments:
135
+ - 0
136
+ version: "0"
137
+ requirements: []
138
+
139
+ rubyforge_project:
140
+ rubygems_version: 1.4.2
141
+ signing_key:
142
+ specification_version: 3
143
+ summary: Rails gem for writing, testing, executing nagios checks inside Rails application. Checks running throught http or binary(nrpe).
144
+ test_files: []
145
+