class Jerakia::Datasource::Http
Public Instance Methods
lookup()
click to toggle source
# File lib/jerakia/datasource/http.rb, line 30 def lookup lookup_supported_params = [ :host, :port, :output, :failure, :ignore_404, :headers, :http_connect_timeout, :http_read_timeout, :use_ssl, :ssl_ca_cert, :ssl_cert, :ssl_key, :ssl_verify, :use_auth, :auth_user, :auth_pass ] lookup_params = options.select { |p| lookup_supported_params.include?(p) } http_lookup = LookupHttp.new(lookup_params) paths = options[:paths].flatten answer do |response| path = paths.shift break unless path Jerakia.log.debug("Attempting to load data from #{path}") data = http_lookup.get_parsed(path) Jerakia.log.debug("Datasource provided #{data} (#{data.class}) looking for key #{request.key}") if data.is_a?(Hash) if options[:lookup_key] response.submit data[request.key] if data.has_key?(request.key) else response.submit data end else unless options[:output] == 'plain' || options[:failure] == 'graceful' raise Jerakia::Error, "HTTP request did not return a hash for #{request.key}" end response.submit data end end end