public IReadOnlyList GetClusters()

in src/dotnet/AzureAI.Proxy/ReverseProxy/ProxyConfiguration.cs [46:93]


    public IReadOnlyList<ClusterConfig> GetClusters()
    {
        List<ClusterConfig> clusters = new();
        
        foreach (var route in _proxyConfig.Routes)
        {
            Dictionary<string, DestinationConfig> destinations = new();

            foreach (var destination in route.Endpoints)
            {
                Dictionary<string, string> metadata = new()
                {
                    { "url", destination.Address },
                    { "priority", destination.Priority.ToString() }
                };

                DestinationConfig destinationConfig = new()
                {
                    Address = destination.Address,
                    Metadata = metadata
                };

                destinations[destination.Address] = destinationConfig;

                
            }

            ClusterConfig clusterConfig = new()
            {
                ClusterId = route.Name,
                Destinations = destinations,
                HealthCheck = new HealthCheckConfig
                {
                    Passive = new PassiveHealthCheckConfig
                    {
                        Enabled = true,
                        Policy = ThrottlingHealthPolicy.ThrottlingPolicyName
                    }
                },
                //LoadBalancingPolicy = LoadBalancingPolicies.RoundRobin,
                HttpRequest = new ForwarderRequestConfig()
            };

            clusters.Add(clusterConfig);
        }
        
        return clusters.AsReadOnly();
    }