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 44 def delete(url) logger.debug "IcingaDirector: DELETE request to #{url}" client(url).delete.body rescue StandardError => e raise handle_http_exception(e, 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 StandardError => e raise handle_http_exception(e, 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 rescue StandardError => e raise handle_http_exception(e, url) end
put(url, payload)
click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 37 def put(url, payload) logger.debug "IcingaDirector: PUT request to #{url} with payload: #{payload}" client(url).put(payload).body rescue StandardError => e raise handle_http_exception(e, url) 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 61 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 92 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 69 def basic_auth? user && password end
cacert()
click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 104 def cacert Proxy::Monitoring::IcingaDirector::Plugin.settings.director_cacert end
handle_http_exception(e, url)
click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 79 def handle_http_exception(e, url) case e when RestClient::ResourceNotFound Proxy::Monitoring::NotFound.new("Icinga Director returned not found for #{request_url(url)}.") when RestClient::Unauthorized Proxy::Monitoring::AuthenticationError.new("Error authenicating to Icinga Director at #{request_url(url)}: #{e.message}") when RestClient::NotModified raise else Proxy::Monitoring::Error.new("Error connecting to Icinga Director at #{request_url(url)}: #{e.message}") end end
password()
click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 100 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 73 def request_headers { 'Accept' => 'application/json' } end
request_options()
click to toggle source
# File lib/smart_proxy_monitoring_icingadirector/director_client.rb, line 53 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 96 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 108 def verify_ssl? Proxy::Monitoring::Icinga2::Plugin.settings.verify_ssl end