From 2ca8d5402ed84e485485848573aae7042a3f5689 Mon Sep 17 00:00:00 2001 From: Saksham Mittal Date: Tue, 19 Aug 2025 08:55:21 -0700 Subject: [PATCH] populate home az cache if it's not filled --- cns/restserver/homeazmonitor.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/cns/restserver/homeazmonitor.go b/cns/restserver/homeazmonitor.go index f73c6e35af..f54d3f1984 100644 --- a/cns/restserver/homeazmonitor.go +++ b/cns/restserver/homeazmonitor.go @@ -10,7 +10,6 @@ import ( "github.com/Azure/azure-container-networking/cns/logger" "github.com/Azure/azure-container-networking/cns/types" "github.com/Azure/azure-container-networking/nmagent" - "github.com/patrickmn/go-cache" "github.com/pkg/errors" ) @@ -50,14 +49,25 @@ func (h *HomeAzMonitor) updateCacheValue(resp cns.GetHomeAzResponse) { // readCacheValue reads home az cache value func (h *HomeAzMonitor) readCacheValue() cns.GetHomeAzResponse { - cachedResp, found := h.values.Get(homeAzCacheKey) - if !found { - return cns.GetHomeAzResponse{Response: cns.Response{ + if cachedResp, found := h.values.Get(homeAzCacheKey); found { + return cachedResp.(cns.GetHomeAzResponse) + } + + ctx, cancel := context.WithTimeout(context.Background(), ContextTimeOut) + defer cancel() + h.Populate(ctx) + + if cachedResp, found := h.values.Get(homeAzCacheKey); found { + return cachedResp.(cns.GetHomeAzResponse) + } + + return cns.GetHomeAzResponse{ + Response: cns.Response{ ReturnCode: types.NotFound, Message: "HomeAz Cache is unavailable", - }, HomeAzResponse: cns.HomeAzResponse{IsSupported: false}} + }, + HomeAzResponse: cns.HomeAzResponse{IsSupported: false}, } - return cachedResp.(cns.GetHomeAzResponse) } // Start starts a new thread to refresh home az cache