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(query, from_time=nil, to_time=nil, time_zone='UTC')
click to toggle source
# File lib/sumologic.rb, line 26 def search(query, from_time=nil, to_time=nil, time_zone='UTC') @http.get do |req| req.url 'logs/search' req.params = {q: query, from: from_time, to: to_time, tz: time_zone} end 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