class RTDI::IDSocket

Public Class Methods

request(type,columns=nil,filter=nil,extfilter=nil) click to toggle source
# File lib/rtdi/socket.rb, line 6
def self.request(type,columns=nil,filter=nil,extfilter=nil)
  query = "GET #{type.to_s}\n"
  if columns != nil
    query << "Columns: #{columns}\n"
  end
  if filter != nil
    query << "Filter: #{filter}\n"
  end
  if extfilter != nil
    query << "Filter: #{extfilter}\n"
  end
  query << "OutputFormat: csv\n"
  i = 1
  socket = connect()
  socket.puts query
  socket.shutdown(Socket::SHUT_WR)
  res = socket.recv(10000)
  if res[-1] == "\n" && res[-2] == "\n"
    res = res.gsub!("\n\n","")
  elsif res[-1] == "\n" && res[-2] != "\n"
    res = res.gsub!("\n","")
  end
  socket.close
  return res
end

Private Class Methods

connect() click to toggle source
# File lib/rtdi/socket.rb, line 34
def self.connect()
  socket = UNIXSocket.open("/var/lib/icinga/rw/live")
  return socket
end