Skip to content

Commit 8a2376d

Browse files
mulpuriHarness
authored andcommitted
[fix]: [CCM-30181]: Prevent stale Redis cache from skipping Azure SKU API refresh (#37)
* c24bb1 CCM-30181: Update VMs from Public API rather than cache * d6efa0 CCM-30181: Update VMs from Public API rather than cache
1 parent bfd147f commit 8a2376d

File tree

2 files changed

+3
-33
lines changed

2 files changed

+3
-33
lines changed

internal/cloudinfo/providers/azure/cloudinfo.go

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,7 @@ type ResourceSkuRetriever interface {
115115

116116
// NewAzureInfoer creates a new instance of the Azure infoer.
117117
func NewAzureInfoer(config Config, logger cloudinfo.Logger) (*AzureInfoer, error) {
118-
logger.Info("NewAzureInfoer: config received", map[string]interface{}{
119-
"configSubscriptionId": config.SubscriptionID,
120-
"configTenantId": config.TenantID,
121-
"configClientId": config.ClientID,
122-
"hasClientSecret": config.ClientSecret != "",
123-
})
124-
125118
var authorizer autorest.Authorizer
126-
authSource := "none"
127119

128120
if config.ClientID != "" && config.ClientSecret != "" && config.TenantID != "" {
129121
credentialsConfig := auth.NewClientCredentialsConfig(config.ClientID, config.ClientSecret, config.TenantID)
@@ -133,27 +125,18 @@ func NewAzureInfoer(config Config, logger cloudinfo.Logger) (*AzureInfoer, error
133125
}
134126

135127
authorizer = a
136-
authSource = "clientCredentials"
137-
logger.Info("NewAzureInfoer: using client credentials auth")
138128
}
139129

140130
if authorizer == nil {
141-
logger.Info("NewAzureInfoer: client credentials not available, trying environment auth")
142131
a, err := auth.NewAuthorizerFromEnvironment()
143132
authorizer = a
144133
if err != nil { // Failed to create authorizer from environment, try from file
145-
logger.Info("NewAzureInfoer: environment auth failed, trying file auth", map[string]interface{}{
146-
"envAuthError": err.Error(),
147-
})
148134
a, err := auth.NewAuthorizerFromFile(azure.PublicCloud.ResourceManagerEndpoint)
149135
if err != nil {
150136
return nil, errors.Wrap(err, "failed to get authorizer from both env and file")
151137
}
152138

153139
authorizer = a
154-
authSource = "file"
155-
} else {
156-
authSource = "environment"
157140
}
158141
}
159142

@@ -172,13 +155,6 @@ func NewAzureInfoer(config Config, logger cloudinfo.Logger) (*AzureInfoer, error
172155
containerServiceClient := containerservice.NewContainerServicesClient(config.SubscriptionID)
173156
containerServiceClient.Authorizer = authorizer
174157

175-
logger.Info("NewAzureInfoer: initialized", map[string]interface{}{
176-
"authSource": authSource,
177-
"subscriptionId": config.SubscriptionID,
178-
"tenantId": config.TenantID,
179-
"clientId": config.ClientID,
180-
})
181-
182158
return &AzureInfoer{
183159
subscriptionId: config.SubscriptionID,
184160
subscriptionsClient: sClient,
@@ -603,9 +579,7 @@ func (a *AzureInfoer) GetVirtualMachines(region string) ([]types.VMInfo, error)
603579
logger := a.log.WithFields(map[string]interface{}{"region": region})
604580
startTime := time.Now()
605581

606-
logger.Info("GetVirtualMachines: starting SKU API call", map[string]interface{}{
607-
"subscriptionId": a.subscriptionId,
608-
})
582+
logger.Info("GetVirtualMachines: starting SKU API call")
609583

610584
skusResultPage, err := a.skusClient.List(context.Background())
611585
if err != nil {

internal/cloudinfo/scrape.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,8 @@ func (sm *scrapingManager) scrapeServiceRegionProducts(ctx context.Context, serv
7979
logger := log.WithFields(sm.log, map[string]interface{}{"service": service, "region": regionId})
8080

8181
logger.Debug("retrieving regional product information")
82-
vms, ok := sm.store.GetVm(sm.provider, service, regionId)
83-
if !ok {
84-
logger.Debug("VMs not yet cached, proceeding to scraping them...")
85-
}
86-
87-
values, err := sm.infoer.GetProducts(vms, service, regionId)
82+
// Always fetch fresh VM SKUs from Azure API instead of cache
83+
values, err := sm.infoer.GetProducts(nil, service, regionId)
8884
if err != nil {
8985
return errors.Wrap(err, "failed to retrieve products for region")
9086
}

0 commit comments

Comments
 (0)