in internal/loader/configuration_setting_loader.go [322:350]
func (csl *ConfigurationSettingLoader) CheckAndRefreshSentinels(
ctx context.Context,
provider *acpv1.AzureAppConfigurationProvider,
eTags map[acpv1.Sentinel]*azcore.ETag) (bool, map[acpv1.Sentinel]*azcore.ETag, error) {
sentinelChanged := false
refreshedETags := make(map[acpv1.Sentinel]*azcore.ETag)
for sentinel, currentETag := range eTags {
refreshedETags[sentinel] = currentETag
settingsClient := csl.SettingsClient
if settingsClient == nil {
settingsClient = &SentinelSettingsClient{
sentinel: sentinel,
etag: currentETag,
refreshInterval: provider.Spec.Configuration.Refresh.Interval,
}
}
response, err := csl.ExecuteFailoverPolicy(ctx, settingsClient)
if err != nil {
return false, eTags, err
}
if response != nil && response.Settings != nil && response.Settings[0].ETag != nil {
sentinelChanged = true
refreshedETags[sentinel] = response.Settings[0].ETag
}
}
return sentinelChanged, refreshedETags, nil
}