public IActionResult GetHosts()

in sfintegration/Controllers/v1.cs [297:341]


        public IActionResult GetHosts(string routeConfig)
        {
            List<EnvoyHost> ret = new List<EnvoyHost>();

            var nameSegements = routeConfig.Split('|');
            // Deal with service name cluster as opposed to a partition cluster
            if (nameSegements[2] == "-2")
            {
                if (!SF_Services.services_.ContainsKey(routeConfig))
                {
                    return Ok(new { hosts = ret });
                }
                var service = SF_Services.services_[routeConfig];
                foreach (var partition in service.Partitions)
                {
                    string routeConfigForPartition = partition.ToString() + "|" + service.EndpointIndex.ToString() + "|0";
                    var pId = partition;
                    var info = SF_Services.EnvoyInformationForPartition(pId);
                    foreach (var serviceInfo in info)
                    {
                        if (serviceInfo.cluster.name != routeConfigForPartition)
                        {
                            continue;
                        }
                        ret.AddRange(serviceInfo.hosts);
                    }
                }
            }
            else
            {
                Guid pId = new Guid(nameSegements[0]);
                var info = SF_Services.EnvoyInformationForPartition(pId);
                foreach (var service in info)
                {
                    if (service.cluster.name != routeConfig)
                    {
                        continue;
                    }
                    ret.AddRange(service.hosts);
                }
            }
            return Ok(
                new { hosts = ret }
                );
        }