class Consul::Async::ConsulConfiguration
The class configuring Consul
endpoints It allows to translate configuration options per specific endpoint/path
Attributes
base_url[R]
debug[R]
enable_gzip_compression[R]
fail_fast_errors[R]
max_consecutive_errors_on_endpoint[R]
max_retry_duration[R]
min_duration[R]
missing_index_retry_time_on_diff[R]
missing_index_retry_time_on_unchanged[R]
retry_duration[R]
retry_on_non_diff[R]
tls_cert_chain[R]
tls_private_key[R]
tls_verify_peer[R]
token[R]
wait_duration[R]
Public Class Methods
new(base_url: 'http://localhost:8500', debug: { network: false }, token: nil, retry_duration: 10, min_duration: 0.1, retry_on_non_diff: 5, wait_duration: 600, max_retry_duration: 600, missing_index_retry_time_on_diff: 15, missing_index_retry_time_on_unchanged: 60, enable_gzip_compression: true, paths: {}, max_consecutive_errors_on_endpoint: 10, fail_fast_errors: 1, tls_cert_chain: nil, tls_private_key: nil, tls_verify_peer: true)
click to toggle source
# File lib/consul/async/consul_endpoint.rb, line 13 def initialize(base_url: 'http://localhost:8500', debug: { network: false }, token: nil, retry_duration: 10, min_duration: 0.1, retry_on_non_diff: 5, wait_duration: 600, max_retry_duration: 600, missing_index_retry_time_on_diff: 15, missing_index_retry_time_on_unchanged: 60, enable_gzip_compression: true, paths: {}, max_consecutive_errors_on_endpoint: 10, fail_fast_errors: 1, tls_cert_chain: nil, tls_private_key: nil, tls_verify_peer: true) @base_url = base_url @token = token @debug = debug @enable_gzip_compression = enable_gzip_compression @retry_duration = retry_duration @min_duration = min_duration @wait_duration = wait_duration @max_retry_duration = max_retry_duration @retry_on_non_diff = retry_on_non_diff @missing_index_retry_time_on_diff = missing_index_retry_time_on_diff @missing_index_retry_time_on_unchanged = missing_index_retry_time_on_unchanged @paths = paths @max_consecutive_errors_on_endpoint = max_consecutive_errors_on_endpoint @fail_fast_errors = fail_fast_errors @tls_cert_chain = tls_cert_chain @tls_private_key = tls_private_key @tls_verify_peer = tls_verify_peer end
Public Instance Methods
ch(path, symbol)
click to toggle source
# File lib/consul/async/consul_endpoint.rb, line 49 def ch(path, symbol) sub = @paths[path.to_sym] if sub && sub[symbol] ::Consul::Async::Debug.puts_debug "Overriding #{symbol}:=#{sub[symbol]} for #{path}" sub[symbol] else method(symbol).call end end
create(path, agent: nil)
click to toggle source
# File lib/consul/async/consul_endpoint.rb, line 59 def create(path, agent: nil) return self unless @paths[path.to_sym] base_url = ch(path, :base_url) if agent agent = "http://#{agent}" unless agent.start_with? 'http', 'https' base_url = agent end ConsulConfiguration.new(base_url: base_url, debug: ch(path, :debug), token: ch(path, :token), retry_duration: ch(path, :retry_duration), min_duration: ch(path, :min_duration), retry_on_non_diff: ch(path, :retry_on_non_diff), wait_duration: ch(path, :wait_duration), max_retry_duration: ch(path, :max_retry_duration), missing_index_retry_time_on_diff: ch(path, :missing_index_retry_time_on_diff), missing_index_retry_time_on_unchanged: ch(path, :missing_index_retry_time_on_unchanged), enable_gzip_compression: enable_gzip_compression, paths: @paths, max_consecutive_errors_on_endpoint: @max_consecutive_errors_on_endpoint, fail_fast_errors: @fail_fast_errors, tls_cert_chain: ch(path, :tls_cert_chain), tls_private_key: ch(path, :tls_private_key), tls_verify_peer: ch(path, :tls_verify_peer)) end