in lib/elastic/transport/transport/sniffer.rb [44:67]
def hosts
Timeout::timeout(timeout, SnifferTimeoutError) do
nodes = perform_sniff_request.body
hosts = nodes['nodes'].map do |id, info|
next unless info[PROTOCOL]
host, port = parse_publish_address(info[PROTOCOL]['publish_address'])
{
id: id,
name: info['name'],
version: info['version'],
host: host,
port: port,
roles: info['roles'],
attributes: info['attributes']
}
end.compact
hosts.shuffle! if transport.options[:randomize_hosts]
hosts
end
end