Skip to content

Commit

Permalink
[SAPBTPCFS-7876] Optimize handling of non-transient errors
Browse files Browse the repository at this point in the history
  • Loading branch information
I065450 committed Dec 19, 2023
1 parent 2c813f0 commit 6f3fc96
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions controllers/serviceinstance_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,7 @@ func (r *ServiceInstanceReconciler) Reconcile(ctx context.Context, req ctrl.Requ

if meta.IsStatusConditionPresentAndEqual(serviceInstance.GetConditions(), api.ConditionSucceeded, metav1.ConditionFalse) &&
utils.IsIgnoreNonTransientAnnotationExistAndValid(log, serviceInstance, r.Config.IgnoreNonTransientTimeout) {
operation := smClientTypes.CREATE
if len(serviceInstance.Status.InstanceID) > 0 {
operation = smClientTypes.UPDATE
}
setInProgressConditions(ctx, operation, "", serviceInstance)
changeLastConditionToInProgress(serviceInstance)
if err := r.Status().Update(ctx, serviceInstance); err != nil {
return ctrl.Result{}, err
}
Expand Down Expand Up @@ -724,3 +720,18 @@ func getErrorMsgFromLastOperation(status *smClientTypes.Operation) string {
}
return errMsg
}

func changeLastConditionToInProgress(serviceInstance *servicesv1.ServiceInstance) {
conditions := serviceInstance.GetConditions()
lastOpCondition := meta.FindStatusCondition(conditions, api.ConditionSucceeded)
operation := smClientTypes.CREATE
if len(serviceInstance.Status.InstanceID) > 0 {
operation = smClientTypes.UPDATE
}
lastOpCondition.Reason = getConditionReason(operation, smClientTypes.INPROGRESS)

if len(conditions) > 0 {
meta.RemoveStatusCondition(&conditions, api.ConditionFailed)
}
meta.SetStatusCondition(&conditions, *lastOpCondition)
}

0 comments on commit 6f3fc96

Please sign in to comment.