class SumoLogic::Client

Attributes

http[RW]

Public Class Methods

new(access_id=nil, access_key=nil, endpoint=SumoLogic::URL) click to toggle source
# File lib/sumologic.rb, line 13
def initialize(access_id=nil, access_key=nil, endpoint=SumoLogic::URL)
  @endpoint = endpoint
  headers = {'Content-Type' => 'application/json', 'Accept' => 'application/json'}
  @http = Faraday.new(url: @endpoint, headers: headers) do |conn|
    conn.basic_auth(access_id, access_key)
    conn.use      FaradayMiddleware::FollowRedirects, limit: 5
    conn.use      :cookie_jar
    conn.request  :json
    conn.response :json, content_type: 'application/json'
    conn.adapter  Faraday.default_adapter
  end
end

Public Instance Methods

collector(collector_id) click to toggle source
# File lib/sumologic.rb, line 57
def collector(collector_id)
  @http.get "collectors/#{collector_id}"
end
collectors(limit=nil, offset=nil) click to toggle source
# File lib/sumologic.rb, line 53
def collectors(limit=nil, offset=nil)
  @http.get 'collectors', params_limit_offset(limit, offset)
end
create_content(path, data) click to toggle source
# File lib/sumologic.rb, line 93
def create_content(path, data)
  @http.post "content/#{path}", data
end
dashboard(dashboard_id) click to toggle source
# File lib/sumologic.rb, line 110
def dashboard(dashboard_id)
  r = @http.get "dashboards/#{dashboard_id}"
  return r.body.key?('dashboard') ? r.body['dashboard'] : nil
end
dashboard_data(dashboard_id) click to toggle source
# File lib/sumologic.rb, line 115
def dashboard_data(dashboard_id)
  r = @http.get "dashboards/#{dashboard_id}/data"
  return r.body.key?('dashboardMonitorDatas') ? r.body['dashboardMonitorDatas'] : nil
end
dashboards(monitors=false) click to toggle source
# File lib/sumologic.rb, line 105
def dashboards(monitors=false)
  r = @http.get 'dashboards', {dashboards: monitors}
  return r.body.key?('dashboards') ? r.body['dashboards'] : nil
end
delete_collector(collector) click to toggle source
# File lib/sumologic.rb, line 69
def delete_collector(collector)
  @http.delete "collectors/#{collector['id']}"
end
delete_content(path) click to toggle source
# File lib/sumologic.rb, line 101
def delete_content(path)
  @http.delete "content/#{path}"
end
delete_source(collector_id, source) click to toggle source
# File lib/sumologic.rb, line 89
def delete_source(collector_id, source)
  @http.delete "collectors/#{collector_id}/sources/#{source['source']['id']}"
end
get_content(path) click to toggle source
# File lib/sumologic.rb, line 97
def get_content(path)
  @http.get "content/#{path}"
end
params_limit_offset(limit, offset) click to toggle source
# File lib/sumologic.rb, line 120
def params_limit_offset(limit, offset)
  params = {}
  params[:limit] = limit unless limit.nil?
  params[:offset] = offset unless offset.nil?
  params
end
search_job(query, from_time=nil, to_time=nil, time_zone='UTC') click to toggle source
# File lib/sumologic.rb, line 33
def search_job(query, from_time=nil, to_time=nil, time_zone='UTC')
  params = {query: query, from: from_time, to: to_time, timeZone: time_zone}
  @http.post do |req|
    req.url 'search/jobs'
    req.body = MultiJson.encode(params)
  end
end
search_job_messages(search_job, limit=nil, offset=0) click to toggle source
# File lib/sumologic.rb, line 45
def search_job_messages(search_job, limit=nil, offset=0)
  @http.get "search/jobs/#{search_job['id']}/messages", params_limit_offset(limit, offset)
end
search_job_records(search_job, limit=nil, offset=0) click to toggle source
# File lib/sumologic.rb, line 49
def search_job_records(search_job, limit=nil, offset=0)
  @http.get "search/jobs/#{search_job['id']}/records", params_limit_offset(limit, offset)
end
search_job_status(search_job={}) click to toggle source
# File lib/sumologic.rb, line 41
def search_job_status(search_job={})
  @http.get "search/jobs/#{search_job['id']}"
end
source(collector_id, source_id) click to toggle source
# File lib/sumologic.rb, line 77
def source(collector_id, source_id)
  @http.get "collectors/#{collector_id}/sources/#{source_id}"
end
sources(collector_id, limit=nil, offset=nil) click to toggle source
# File lib/sumologic.rb, line 73
def sources(collector_id, limit=nil, offset=nil)
  @http.get "collectors/#{collector_id}/sources", params_limit_offset(limit, offset)
end
update_collector(collector, etag) click to toggle source
# File lib/sumologic.rb, line 61
def update_collector(collector, etag)
  @http.put do |req|
    req.url "collectors/#{collector['collector']['id']}"
    req.headers['If-Match'] = etag
    req.body = collector
  end
end
update_source(collector_id, source, etag) click to toggle source
# File lib/sumologic.rb, line 81
def update_source(collector_id, source, etag)
  @http.put do |req|
    req.url "collectors/#{collector_id}/sources/#{source['source']['id']}"
    req.headers['If-Match'] = etag
    req.body = source
  end
end