class SensuCli::Base

Attributes

cli[RW]

Public Instance Methods

api_path(cli) click to toggle source
# File lib/sensu-cli/base.rb, line 40
def api_path(cli)
  p = PathCreator.new
  p.respond_to?(cli[:command]) ? path = p.send(cli[:command], cli) : SensuCli::die(1, 'Something Bad Happened')
  @api = { :path => path[:path], :method => cli[:method], :command => cli[:command], :payload => (path[:payload] || false) }
end
make_call() click to toggle source
# File lib/sensu-cli/base.rb, line 46
def make_call
  opts = {
    :path => @api[:path],
    :method => @api[:method],
    :payload => @api[:payload],
    :host => Config.host,
    :port => Config.port,
    :ssl => Config.ssl || false,
    :user => Config.user || nil,
    :read_timeout => Config.read_timeout || 15,
    :open_timeout => Config.open_timeout || 5,
    :password => Config.password || nil,
    :auth_token => Config.auth_token || nil,
    :proxy_address => Config.proxy_address || nil,
    :proxy_port => Config.proxy_port || nil
  }
  api = Api.new
  res = api.request(opts)
  msg = api.response(res.code, res.body, @api[:command])
  msg = Filter.new(cli[:fields][:filter]).process(msg) if cli[:fields][:filter]
  endpoint = @api[:command]
  if res.code != '200'
    SensuCli::die(0)
  elsif cli[:fields][:format] == 'single'
    Pretty.single(msg, endpoint)
  elsif cli[:fields][:format] == 'table'
    fields = nil || cli[:fields][:fields]
    Pretty.table(msg, endpoint, fields)
  elsif cli[:fields][:format] == 'json'
    Pretty.json(msg)
  else
    Pretty.print(msg, endpoint)
  end
  Pretty.count(msg) unless cli[:fields][:format] == 'table' or cli[:fields][:format] == 'json'
end
settings(directory = " click to toggle source
# File lib/sensu-cli/base.rb, line 22
def settings(directory = "#{Dir.home}/.sensu", filename = 'settings.rb')
  file = "#{directory}/#{filename}"
  alt = '/etc/sensu/sensu-cli/settings.rb'
  settings = Settings.new
  if settings.file?(file)
    SensuCli::Config.from_file(file)
  elsif settings.file?(alt)
    SensuCli::Config.from_file(alt)
  else
    settings.create(directory, file)
  end
  if $stdout.isatty and not Config.pretty_colors == false
    Rainbow.enabled = true
  else
    Rainbow.enabled = false
  end
end
setup() click to toggle source
# File lib/sensu-cli/base.rb, line 4
def setup
  self.cli = Cli.new.global
  settings
  if cli[:command] == 'socket'
    socket
  else
    api_path(cli)
    make_call
  end
end
socket() click to toggle source
# File lib/sensu-cli/base.rb, line 15
def socket
  socket = SensuCli::Client::Socket.new
  socket.format_message(cli[:fields]) if cli[:method] == 'create'
  socket.message = cli[:raw] if cli[:method] == 'raw'
  socket.send_udp_message
end