class EventStore::Cluster::LeaderStatus::GossipEndpoint::Get
Constants
- NonClusterError
Public Class Methods
build(connect_http=nil)
click to toggle source
# File lib/event_store/cluster/leader_status/gossip_endpoint/get.rb, line 12 def self.build(connect_http=nil) instance = new connect_http = EventStore::HTTP::Connect.configure( instance, connect: connect_http, attr_name: :connect_http ) instance end
call(host=nil, connect_http=nil)
click to toggle source
# File lib/event_store/cluster/leader_status/gossip_endpoint/get.rb, line 24 def self.call(host=nil, connect_http=nil) instance = build connect_http instance.(host) end
Public Instance Methods
call(host=nil)
click to toggle source
# File lib/event_store/cluster/leader_status/gossip_endpoint/get.rb, line 29 def call(host=nil) log_attributes = LogAttributes.get self, host: host logger.trace { "GET gossip endpoint (#{log_attributes})" } connection_telemetry = EventStore::HTTP::Connect.register_telemetry_sink connect_http connect_http.(host) do |connection| begin response = connection.request_get uri_path, http_headers rescue Net::ReadTimeout response = nil end if response log_attributes << ", StatusCode: #{response.code}, ReasonPhrase: #{response.message}" logger.debug { "GET gossip endpoint done (#{log_attributes})" } logger.trace { "Data: \n\n#{response.body}" } end if response.nil? or non_cluster? response error_message = "GET gossip endpoint made against non-clustered EventStore (#{log_attributes})" logger.error error_message raise NonClusterError, error_message end response = Transform::Read.(response.body, :json, Response) return response end end
http_headers()
click to toggle source
# File lib/event_store/cluster/leader_status/gossip_endpoint/get.rb, line 66 def http_headers { 'Accept' => 'application/json' } end
non_cluster?(response)
click to toggle source
# File lib/event_store/cluster/leader_status/gossip_endpoint/get.rb, line 70 def non_cluster?(response) response.code == '408' and response.message == "Server was unable to handle request in time" end
uri_path()
click to toggle source
# File lib/event_store/cluster/leader_status/gossip_endpoint/get.rb, line 62 def uri_path '/gossip' end