func()

in internal/loader/configuration_client_manager.go [145:173]


func (manager *ConfigurationClientManager) GetClients(ctx context.Context) ([]*ConfigurationClientWrapper, error) {
	currentTime := metav1.Now()
	clients := make([]*ConfigurationClientWrapper, 0)
	for _, clientWrapper := range manager.StaticClientWrappers {
		if currentTime.After(clientWrapper.BackOffEndTime.Time) {
			clients = append(clients, clientWrapper)
		}
	}

	if !manager.ReplicaDiscoveryEnabled {
		return clients, nil
	}

	if currentTime.After(manager.lastFallbackClientAttempt.Time.Add(MinimalClientRefreshInterval)) &&
		(manager.DynamicClientWrappers == nil ||
			currentTime.After(manager.lastFallbackClientRefresh.Time.Add(FallbackClientRefreshExpireInterval))) {
		manager.lastFallbackClientAttempt = currentTime
		url, _ := url.Parse(manager.endpoint)
		manager.DiscoverFallbackClients(ctx, url.Host)
	}

	for _, clientWrapper := range manager.DynamicClientWrappers {
		if currentTime.After(clientWrapper.BackOffEndTime.Time) {
			clients = append(clients, clientWrapper)
		}
	}

	return clients, nil
}