in src/Elastic.Transport.VirtualizedCluster/Products/Elasticsearch/ElasticsearchSniffResponseFactory.cs [44:87]
private static object CreateNodeResponse(Node node, string name, string elasticsearchVersion, string publishAddressOverride, bool randomFqdn)
{
var port = node.Uri.Port;
var fqdn = randomFqdn ? $"fqdn{port}/" : "";
var host = !string.IsNullOrWhiteSpace(publishAddressOverride) ? publishAddressOverride : "127.0.0.1";
var settings = new Dictionary<string, object>
{
{ "cluster.name", ClusterName },
{ "node.name", name }
};
foreach (var kv in node.Settings) settings[kv.Key] = kv.Value;
var httpEnabled = node.HasFeature(ElasticsearchNodeFeatures.HttpEnabled);
var nodeResponse = new
{
name,
settings,
transport_address = $"127.0.0.1:{port + 1000}]",
host = Guid.NewGuid().ToString("N").Substring(0, 8),
ip = "127.0.0.1",
version = elasticsearchVersion,
build_hash = Guid.NewGuid().ToString("N").Substring(0, 8),
roles = new List<string>(),
http = httpEnabled
? new
{
bound_address = new[]
{
$"{fqdn}127.0.0.1:{port}"
},
//publish_address = $"{fqdn}${publishAddress}"
publish_address = $"{fqdn}{host}:{port}"
}
: null
};
if (node.HasFeature(ElasticsearchNodeFeatures.MasterEligible)) nodeResponse.roles.Add("master");
if (node.HasFeature(ElasticsearchNodeFeatures.HoldsData)) nodeResponse.roles.Add("data");
if (node.HasFeature(ElasticsearchNodeFeatures.IngestEnabled)) nodeResponse.roles.Add("ingest");
if (!httpEnabled)
nodeResponse.settings.Add("http.enabled", false);
return nodeResponse;
}