From 42609bbcc043ffe9fee7ca2913d10fcf29cadfc3 Mon Sep 17 00:00:00 2001 From: Pravin Pushkar Date: Fri, 11 Nov 2022 23:49:23 +0530 Subject: [PATCH] azappconfig incorporate OnlyIfChanged flag from sdk Signed-off-by: Pravin Pushkar Signed-off-by: mecoding1 <118708378+mecoding1@users.noreply.github.com> --- configuration/azure/appconfig/appconfig.go | 14 ++++++++++---- go.mod | 2 +- go.sum | 2 ++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/configuration/azure/appconfig/appconfig.go b/configuration/azure/appconfig/appconfig.go index b91601ad6..262657753 100644 --- a/configuration/azure/appconfig/appconfig.go +++ b/configuration/azure/appconfig/appconfig.go @@ -295,15 +295,21 @@ func (r *ConfigurationStore) Subscribe(ctx context.Context, req *configuration.S } func (r *ConfigurationStore) doSubscribe(ctx context.Context, req *configuration.SubscribeRequest, handler configuration.UpdateHandler, sentinelKey string, id string) { + var etagVal *azcore.ETag for { // get sentinel key changes - _, err := r.Get(ctx, &configuration.GetRequest{ - Keys: []string{sentinelKey}, - Metadata: req.Metadata, - }) + resp, err := r.client.GetSetting( + context.TODO(), + sentinelKey, + &azappconfig.GetSettingOptions{ + Label: r.getLabelFromMetadata(req.Metadata), + OnlyIfChanged: etagVal, + }, + ) if err != nil { r.logger.Debugf("azure appconfig error: fail to get sentinel key changes or sentinel key's value is unchanged: %s", err) } else { + etagVal = resp.ETag items, err := r.Get(ctx, &configuration.GetRequest{ Keys: req.Keys, Metadata: req.Metadata, diff --git a/go.mod b/go.mod index 5b94f3034..6d8febc18 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/Azure/azure-sdk-for-go v65.0.0+incompatible github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.4 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 - github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig v0.4.3 + github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig v0.5.0 github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos v0.3.2 github.com/Azure/azure-sdk-for-go/sdk/data/aztables v1.0.1 github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets v0.10.1 diff --git a/go.sum b/go.sum index 13862b899..b5ce71902 100644 --- a/go.sum +++ b/go.sum @@ -105,6 +105,8 @@ github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4Sath github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig v0.4.3 h1:QzjiMJn/pBxOq1xA3F6ODUvO1agmt7+mI+DZEx6dPtc= github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig v0.4.3/go.mod h1:p74+tP95m8830ypJk53L93+BEsjTKY4SKQ75J2NmS5U= +github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig v0.5.0 h1:OrKZybbyagpgJiREiIVzH5mV/z9oS4rXqdX7i31DSF0= +github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig v0.5.0/go.mod h1:p74+tP95m8830ypJk53L93+BEsjTKY4SKQ75J2NmS5U= github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos v0.3.2 h1:yJegJqjhrMJ3Oe5s43jOTGL2AsE7pJyx+7Yqls/65tw= github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos v0.3.2/go.mod h1:Fy3bbChFm4cZn6oIxYYqKB2FG3rBDxk3NZDLDJCHl+Q= github.com/Azure/azure-sdk-for-go/sdk/data/aztables v1.0.1 h1:bFa9IcjvrCber6gGgDAUZ+I2bO8J7s8JxXmu9fhi2ss=