in src/Elastic.Transport/Products/Elasticsearch/Sniff/SniffResponse.cs [19:47]
public IEnumerable<Node> ToNodes(bool forceHttp = false)
{
foreach (var kv in nodes.Where(n => n.Value.HttpEnabled))
{
var info = kv.Value;
var httpEndpoint = info.http?.publish_address;
if (string.IsNullOrWhiteSpace(httpEndpoint))
httpEndpoint = kv.Value.http?.bound_address.FirstOrDefault();
if (string.IsNullOrWhiteSpace(httpEndpoint))
continue;
var uri = SniffParser.ParseToUri(httpEndpoint, forceHttp);
var features = new List<string>();
if (info.MasterEligible)
features.Add(MasterEligible);
if (info.HoldsData)
features.Add(HoldsData);
if (info.IngestEnabled)
features.Add(IngestEnabled);
if (info.HttpEnabled)
features.Add(HttpEnabled);
var node = new Node(uri, features)
{
Name = info.name, Id = kv.Key, Settings = new ReadOnlyDictionary<string, object>(info.settings)
};
yield return node;
}
}