Skip to content

Commit ead62e9

Browse files
GouthamMLYashwantGohokar
authored andcommitted
Check lifecycle state for NLB instead of listing workrequest in the compartment
1 parent 954a02b commit ead62e9

File tree

1 file changed

+15
-23
lines changed

1 file changed

+15
-23
lines changed

pkg/cloudprovider/providers/oci/load_balancer.go

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,31 +2031,23 @@ func (cp *CloudProvider) getFrontendNsgByName(ctx context.Context, logger *zap.S
20312031
func (cp *CloudProvider) checkPendingLBWorkRequests(ctx context.Context, logger *zap.SugaredLogger, lbProvider CloudLoadBalancerProvider, lb *client.GenericLoadBalancer, service *v1.Service, startTime time.Time) (err error) {
20322032
listWorkRequestTime := time.Now()
20332033
loadBalancerType := getLoadBalancerType(service)
2034-
lbName := GetLoadBalancerName(service)
2035-
dimensionsMap := make(map[string]string)
2036-
dimensionsMap[metrics.ResourceOCIDDimension] = *lb.Id
20372034

2038-
lbInProgressWorkRequests, err := lbProvider.lbClient.ListWorkRequests(ctx, *lb.CompartmentId, *lb.Id)
2039-
logger.With("loadBalancerID", *lb.Id).Infof("time (in seconds) to list work-requests for LB %f", time.Since(listWorkRequestTime).Seconds())
2040-
if err != nil {
2041-
logger.With(zap.Error(err)).Error("Failed to list work-requests in-progress")
2042-
errorType := util.GetError(err)
2043-
lbMetricDimension := util.GetMetricDimensionForComponent(errorType, util.LoadBalancerType)
2044-
dimensionsMap[metrics.ComponentDimension] = lbMetricDimension
2045-
dimensionsMap[metrics.ResourceOCIDDimension] = lbName
2046-
metrics.SendMetricData(cp.metricPusher, getMetric(loadBalancerType, List), time.Since(startTime).Seconds(), dimensionsMap)
2047-
return err
2048-
}
2049-
for _, wr := range lbInProgressWorkRequests {
2050-
switch loadBalancerType {
2051-
case NLB:
2052-
if wr.Status == string(networkloadbalancer.OperationStatusInProgress) || wr.Status == string(networkloadbalancer.OperationStatusAccepted) {
2053-
logger.With("loadBalancerID", *lb.Id).Infof("current in-progress work requests for Network Load Balancer %s", *wr.Id)
2054-
return errors.New("Network Load Balancer has work requests in progress, will wait and retry")
2055-
}
2056-
default:
2035+
switch loadBalancerType {
2036+
case NLB:
2037+
if *lb.LifecycleState == string(networkloadbalancer.LifecycleStateUpdating) {
2038+
logger.Info("Load Balancer is in UPDATING state, possibly a work request is in progress")
2039+
return errors.New("Load Balancer might have work requests in progress, will wait and retry")
2040+
}
2041+
default:
2042+
lbInProgressWorkRequests, err := lbProvider.lbClient.ListWorkRequests(ctx, *lb.CompartmentId, *lb.Id)
2043+
logger.Infof("time (in seconds) to list work-requests for LB %f", time.Since(listWorkRequestTime).Seconds())
2044+
if err != nil {
2045+
logger.With(zap.Error(err)).Error("Failed to list work-requests in-progress")
2046+
return err
2047+
}
2048+
for _, wr := range lbInProgressWorkRequests {
20572049
if *wr.LifecycleState == string(loadbalancer.WorkRequestLifecycleStateInProgress) || *wr.LifecycleState == string(loadbalancer.WorkRequestLifecycleStateAccepted) {
2058-
logger.With("loadBalancerID", *lb.Id).Infof("current in-progress work requests for Load Balancer %s", *wr.Id)
2050+
logger.Infof("current in-progress work requests for Load Balancer %s", *wr.Id)
20592051
return errors.New("Load Balancer has work requests in progress, will wait and retry")
20602052
}
20612053
}

0 commit comments

Comments
 (0)