class Proxy::Monitoring::Icinga2::Icinga2Client
Public Class Methods
baseurl()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 122 def baseurl "https://#{Proxy::Monitoring::Icinga2::Plugin.settings.server}:#{Proxy::Monitoring::Icinga2::Plugin.settings.api_port}/v1" end
cacert()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 102 def cacert Proxy::Monitoring::Icinga2::Plugin.settings.api_cacert end
cert()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 90 def cert file = Proxy::Monitoring::Icinga2::Plugin.settings.api_usercert return unless !file.nil? && File.file?(file) OpenSSL::X509::Certificate.new(File.read(file)) end
certificate_request?()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 118 def certificate_request? cert && key end
client(request_url)
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 11 def client(request_url) headers = { 'Accept' => 'application/json' } options = { headers: headers, user: user, ssl_ca_file: cacert, verify_ssl: ssl } auth_options = if certificate_request? { ssl_client_cert: cert, ssl_client_key: key } else { password: password } end options.merge!(auth_options) RestClient::Resource.new( [baseurl, request_url].join(''), options ) end
delete(url)
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 86 def delete(url) client(url).delete end
events_socket(endpoint)
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 41 def events_socket(endpoint) uri = URI.parse([baseurl, endpoint].join('')) socket = TCPSocket.new(uri.host, uri.port) ssl_context = OpenSSL::SSL::SSLContext.new ssl_context.ca_file = cacert if ssl ssl_context.set_params(verify_mode: OpenSSL::SSL::VERIFY_PEER) else ssl_context.set_params(verify_mode: OpenSSL::SSL::VERIFY_NONE) end if certificate_request? ssl_context.cert = cert ssl_context.key = key end ssl_socket = OpenSSL::SSL::SSLSocket.new(socket, ssl_context) ssl_socket.sync_close = true ssl_socket.connect ssl_socket.write "POST #{uri.request_uri} HTTP/1.1\r\n" ssl_socket.write "Accept: application/json\r\n" unless certificate_request? auth = Base64.encode64("#{user}:#{password}") ssl_socket.write "Authorization: Basic #{auth}" end ssl_socket.write "\r\n" ssl_socket end
get(url)
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 74 def get(url) client(url).get end
key()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 96 def key file = Proxy::Monitoring::Icinga2::Plugin.settings.api_userkey return unless !file.nil? && File.file?(file) OpenSSL::PKey::RSA.new(File.read(file)) end
password()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 110 def password Proxy::Monitoring::Icinga2::Plugin.settings.api_password end
post(url, data)
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 78 def post(url, data) client(url).post(data) end
put(url, data)
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 82 def put(url, data) client(url).put(data) end
ssl()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 114 def ssl Proxy::Monitoring::Icinga2::Plugin.settings.verify_ssl end
user()
click to toggle source
# File lib/smart_proxy_monitoring_icinga2/icinga2_client.rb, line 106 def user Proxy::Monitoring::Icinga2::Plugin.settings.api_user end