class Hieracles::Puppetdb::Client
Public Class Methods
new(options, version = 3)
click to toggle source
# File lib/hieracles/puppetdb/client.rb, line 8 def initialize(options, version = 3) @version = version setup_if_ssl(options) options['port'] ||= 8080 options['host'] ||= 'localhost' scheme = options['usessl'] ? "https://" : "http://" self.class.base_uri(scheme + options['host'] + ':' + options['port'].to_s + '/v' + @version.to_s()) end
Public Instance Methods
get_request(endpoint, query, opts)
click to toggle source
# File lib/hieracles/puppetdb/client.rb, line 41 def get_request(endpoint, query, opts) path = "/" + endpoint if query json_query = JSON.dump(query) filtered_opts = {'query' => json_query} opts.each do |k,v| if k == :counts_filter filtered_opts['counts-filter'] = JSON.dump(v) else filtered_opts[k.to_s.sub("_", "-")] = v end end #puts path ; puts filtered_opts ; exit(0) self.class.get(path, query: filtered_opts) else self.class.get(path) end end
request(endpoint, query = nil, method = 'get', opts = {})
click to toggle source
# File lib/hieracles/puppetdb/client.rb, line 27 def request(endpoint, query = nil, method = 'get', opts = {}) ret = send("#{method}_request".to_sym, endpoint, query, opts) if ret.code.to_s() =~ /^[4|5]/ or ret.parsed_response.length < 1 notifications = [ Hieracles::Notification.new('puppetdb', 'No match.', 'error') ] Response.new({}, 0, notifications) else total = ret.headers['X-Records'] if total.nil? total = ret.parsed_response.length end Response.new(ret.parsed_response, total) end end
setup_if_ssl(options)
click to toggle source
# File lib/hieracles/puppetdb/client.rb, line 20 def setup_if_ssl(options) if options['usessl'] self.class.default_options = {:options => options} self.class.connection_adapter(FixSSLConnectionAdapter) end end