in controllers/sonar/sonar_controller.go [57:105]
func (r *ReconcileSonar) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) {
log := ctrl.LoggerFrom(ctx)
log.Info("Reconciling Sonar")
sonar := &sonarApi.Sonar{}
if err := r.client.Get(ctx, request.NamespacedName, sonar); err != nil {
if k8sErrors.IsNotFound(err) {
return reconcile.Result{}, nil
}
return reconcile.Result{}, err
}
oldStatus := sonar.Status
sonarApiClient, err := r.apiClientProvider.GetSonarApiClientFromSonar(ctx, sonar)
if err != nil {
sonar.Status.Error = err.Error()
sonar.Status.Connected = false
if statusErr := r.updateSonarStatus(ctx, sonar, oldStatus); statusErr != nil {
return reconcile.Result{}, statusErr
}
return reconcile.Result{RequeueAfter: defaultRequeueTime}, err
}
if err = chain.MakeChain(sonarApiClient, r.client).ServeRequest(ctx, sonar); err != nil {
sonar.Status.Error = err.Error()
if statusErr := r.updateSonarStatus(ctx, sonar, oldStatus); statusErr != nil {
return reconcile.Result{}, statusErr
}
return reconcile.Result{RequeueAfter: defaultRequeueTime}, err
}
sonar.Status.Connected = true
sonar.Status.Error = ""
if err = r.updateSonarStatus(ctx, sonar, oldStatus); err != nil {
return reconcile.Result{}, err
}
log.Info("Reconciling Sonar is finished")
return reconcile.Result{
RequeueAfter: successRequeueTime,
}, nil
}