lib/zabbix-ruby-client/plugin_base.rb
require 'rbconfig'
require "zabbix-ruby-client/logger"
module ZabbixRubyClient
module PluginBase
extend self
def httprequest(url)
end
def perform(command)
end
def time
@_now ||= Time.now.to_i
end
def os
@_os ||= (
host_os = RbConfig::CONFIG['host_os']
case host_os
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
:windows
when /darwin|mac os/
:macosx
when /linux/
:linux
when /solaris|bsd/
:unix
else
raise Error::WebDriverError, "unknown os: #{host_os.inspect}"
end
)
end
def getline(file, pattern=false)
if File.readable? file
File.open(file,'r') do |f|
f.each do |l|
line = l.strip
if pattern
if Regexp.new(pattern).match line
Log.debug "File #{file}: #{line}"
return line
end
else
return line
end
end
end
Log.warn "File #{file}: pattern \"#{pattern}\" not found."
false
else
if File.file? file
Log.error "File not readable: #{file}"
else
Log.error "File not found: #{file}"
end
false
end
end
def getlines(file, pattern=false)
lines = []
if File.readable? file
File.open(file,'r') do |f|
f.each do |l|
line = l.strip
if pattern
if Regexp.new(pattern).match line
Log.debug "File #{file}: #{line}"
lines << line
end
else
lines << line
end
end
end
Log.warn "File #{file}: pattern \"#{pattern}\" not found." unless lines.count > 0
lines
else
if File.file? file
Log.error "File not readable: #{file}"
else
Log.error "File not found: #{file}"
end
false
end
end
end
end