public IEnumerable ToNodes()

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;
		}
	}