class Grafana::Client
Attributes
api_instance[R]
debug[R]
headers[R]
logger[R]
Public Class Methods
new(host="localhost", port=3000, user='admin', pass='', settings={})
click to toggle source
# File lib/grafana/client.rb, line 39 def initialize(host="localhost", port=3000, user='admin', pass='', settings={}) if settings.has_key?('timeout') && settings['timeout'].to_i <= 0 settings['timeout'] = 5 end if settings.has_key?('open_timeout') && settings['open_timeout'].to_i <= 0 settings['open_timeout'] = 5 end if settings.has_key?('headers') && settings['headers'].class.to_s != 'Hash' settings['headers'] = {} end proto = ( settings.has_key?('ssl') && settings['ssl'] == true ? 'https' : 'http') @logger.info("Initializing API client #{proto}://#{host}:#{port}") if @debug @logger.info("Options: #{options}") if @debug @api_instance = RestClient::Resource.new( "#{proto}://#{host}:#{port}", :timeout => settings['timeout'], :open_timeout => settings['open_timeout'], :headers => settings['headers'] ) @debug = (settings['debug'] ? true : false) @logger = Logger.new(STDOUT) @headers = nil self.login(user, pass) return self end
Public Instance Methods
login(user='admin',pass='admin')
click to toggle source
# File lib/grafana/client.rb, line 72 def login(user='admin',pass='admin') @logger.info("Attempting to establish user session") if @debug request_data = {'User' => user, 'Password' => pass} begin resp = @api_instance['/login'].post( request_data.to_json, {:content_type => 'application/json; charset=UTF-8'} ) @session_cookies = resp.cookies if resp.code.to_i == 200 @headers = { :content_type => 'application/json; charset=UTF-8', :cookies => @session_cookies } return true else return false end rescue => e @logger.error("Error running POST request on /login: #{e}") if @debug @logger.error("Request data: #{request_data.to_json}") if @debug return false end @logger.info("User session initiated") if @debug end