Skip to content

Commit 0de2288

Browse files
GouthamMLYashwantGohokar
authored andcommitted
Check lifecycle state for NLB instead of listing workrequest in the compartment
1 parent af2e79e commit 0de2288

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
@@ -2034,31 +2034,23 @@ func (cp *CloudProvider) getFrontendNsgByName(ctx context.Context, logger *zap.S
20342034
func (cp *CloudProvider) checkPendingLBWorkRequests(ctx context.Context, logger *zap.SugaredLogger, lbProvider CloudLoadBalancerProvider, lb *client.GenericLoadBalancer, service *v1.Service, startTime time.Time) (err error) {
20352035
listWorkRequestTime := time.Now()
20362036
loadBalancerType := getLoadBalancerType(service)
2037-
lbName := GetLoadBalancerName(service)
2038-
dimensionsMap := make(map[string]string)
2039-
dimensionsMap[metrics.ResourceOCIDDimension] = *lb.Id
20402037

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

0 commit comments

Comments
 (0)