func()

in controllers/seataserver_controller.go [357:378]


func (r *SeataServerReconciler) recordError(ctx context.Context, prKey client.ObjectKey, errorType seatav1alpha1.ServerErrorType, errMsg string, err error) error {
	r.Log.Error(err, errMsg)
	return retry.RetryOnConflict(retry.DefaultRetry, func() error {
		newError := seatav1alpha1.SeataServerError{
			Type:      errorType.String(),
			Message:   errMsg,
			Timestamp: metav1.Now(),
		}
		toUpdate := seatav1alpha1.SeataServer{}
		err := r.Get(ctx, prKey, &toUpdate)
		if err != nil {
			r.Log.Error(err, "get seata server object error ", "prkey", prKey)
			return err
		}
		// save recently `MaxErrorRecords` error
		if len(toUpdate.Status.Errors) >= MaxRecentErrorRecords {
			toUpdate.Status.Errors = toUpdate.Status.Errors[1:]
		}
		toUpdate.Status.Errors = append(toUpdate.Status.Errors, newError)
		return r.Status().Update(ctx, &toUpdate)
	})
}