class Jerakia::Datasource::Consul_kv
Public Instance Methods
lookup()
click to toggle source
Entrypoint for Jerakia
lookups starts here.
# File lib/jerakia/datasource/consul_kv.rb, line 51 def lookup Jerakia.log.debug("[datasource::console_kv] backend performing lookup for #{request.key}") paths = options[:searchpath].reject { |p| p.nil? } key = request.key namespace = request.namespace answer do |response| break if paths.empty? path = paths.shift.split('/').compact path << namespace path << key unless key.nil? diplomat_options = { :recurse => options[:recursive], :convert_to_hash => options[:to_hash], :dc => options[:datacenter], } begin key_path = path.flatten.join('/') Jerakia.log.debug("[datasource::consul_kv] Looking up #{key_path} with options #{diplomat_options}") result = Diplomat::Kv.get(key_path, diplomat_options) rescue Diplomat::KeyNotFound => e Jerakia.log.debug("NotFound encountered, skipping to next path entry") next rescue Faraday::ConnectionFailed => e raise Jerakia::Error, "Failed to connect to consul service: #{e.message}" end response.submit result end end