class Proxy::Monitoring::IcingaDirector::DirectorClient

Public Class Methods

instance() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 8
def self.instance
  @instance ||= new
end

Public Instance Methods

client(url) click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 12
def client(url)
  RestClient::Resource.new(
    request_url(url),
    request_options
  )
end
delete(url) click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 40
def delete(url)
  logger.debug "IcingaDirector: DELETE request to #{url}"
  client(url).delete.body
rescue RestClient::NotFound
  raise Proxy::Monitoring::NotFound.new("Icinga Director returned not found for #{url}.")
end
get(url) click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 23
def get(url)
  logger.debug "IcingaDirector: GET request to #{url}"
  client(url).get.body
rescue RestClient::NotFound
  raise Proxy::Monitoring::NotFound.new("Icinga Director returned not found for #{url}.")
end
post(url, payload) click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 30
def post(url, payload)
  logger.debug "IcingaDirector: POST request to #{url} with payload: #{payload}"
  client(url).post(payload).body
end
put(url, payload) click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 35
def put(url, payload)
  logger.debug "IcingaDirector: PUT request to #{url} with payload: #{payload}"
  client(url).put(payload).body
end
request_url(url) click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 19
def request_url(url)
  URI.join(baseurl, url).to_s
end

Private Instance Methods

auth_options() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 57
def auth_options
  return {} unless basic_auth?
  {
    user: user,
    password: password,
  }
end
baseurl() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 75
def baseurl
  Proxy::Monitoring::IcingaDirector::Plugin.settings.director_url + '/'
end
basic_auth?() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 65
def basic_auth?
  user && password
end
cacert() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 87
def cacert
  Proxy::Monitoring::IcingaDirector::Plugin.settings.director_cacert
end
password() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 83
def password
  Proxy::Monitoring::IcingaDirector::Plugin.settings.director_password
end
request_headers() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 69
def request_headers
  {
    'Accept' => 'application/json'
  }
end
request_options() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 49
def request_options
  {
    headers: request_headers,
    ssl_ca_file: cacert,
    verify_ssl: verify_ssl?
  }.merge(auth_options)
end
user() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 79
def user
  Proxy::Monitoring::IcingaDirector::Plugin.settings.director_user
end
verify_ssl?() click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 91
def verify_ssl?
  Proxy::Monitoring::Icinga2::Plugin.settings.verify_ssl
end