Helper methods to send service status.
This commit is contained in:
parent
86f8428c41
commit
e0ea205149
|
@ -0,0 +1,46 @@
|
|||
require 'nsca/client/host'
|
||||
require 'nsca/client/message'
|
||||
require 'nsca/client/notifier'
|
||||
require 'nsca/client/remote_server'
|
||||
require 'nsca/client/service'
|
||||
require 'nsca/client/version'
|
||||
|
||||
module NSCA
|
||||
module Client
|
||||
class << self
|
||||
def servers
|
||||
@servers ||= []
|
||||
end
|
||||
|
||||
def ok(service, message = 'OK')
|
||||
status = false
|
||||
servers.each do |server|
|
||||
message = Message.new(:ok, message, service, server)
|
||||
notifier = Notifier.new(message)
|
||||
status = true if notifier.send_nsca
|
||||
end
|
||||
status
|
||||
end
|
||||
|
||||
def warning(service, message = 'WARNING')
|
||||
status = false
|
||||
servers.each do |server|
|
||||
message = Message.new(:warn, message, service, server)
|
||||
notifier = Notifier.new(message)
|
||||
status = true if notifier.send_nsca
|
||||
end
|
||||
status
|
||||
end
|
||||
|
||||
def critical(service, message = 'CRITICAL')
|
||||
status = false
|
||||
servers.each do |server|
|
||||
message = Message.new(:critical, message, service, server)
|
||||
notifier = Notifier.new(message)
|
||||
status = true if notifier.send_nsca
|
||||
end
|
||||
status
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
31
spec/nsca/client_spec.rb
Normal file
31
spec/nsca/client_spec.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe NSCA::Client do
|
||||
let(:service) { NSCA::Client::Service.new(:name => 'TestMessage') }
|
||||
|
||||
before(:all) do
|
||||
NSCA::Client.servers << NSCA::Client::RemoteServer.new(:host => '172.0.0.1')
|
||||
end
|
||||
|
||||
before(:each) do
|
||||
SendNsca::NscaConnection.any_instance.should_receive(:send_nsca)
|
||||
end
|
||||
|
||||
context "normal service operation" do
|
||||
it "should notify" do
|
||||
NSCA::Client.ok(service).should be_true
|
||||
end
|
||||
end
|
||||
|
||||
context "unstable service operation" do
|
||||
it "should notify" do
|
||||
NSCA::Client.warning(service).should be_true
|
||||
end
|
||||
end
|
||||
|
||||
context "critical service state" do
|
||||
it "should notify" do
|
||||
NSCA::Client.critical(service).should be_true
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue