in controllers/gitserver/gitserver_controller.go [57:111]
func (r *ReconcileGitServer) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) {
log := ctrl.LoggerFrom(ctx)
log.Info("Reconciling GitServer")
instance := &codebaseApi.GitServer{}
if err := r.client.Get(ctx, request.NamespacedName, instance); err != nil {
if k8sErrors.IsNotFound(err) {
return reconcile.Result{}, nil
}
return reconcile.Result{}, fmt.Errorf("failed to fetch resource %q: %w", request.NamespacedName, err)
}
oldStatus := instance.Status
gitServer := model.ConvertToGitServer(instance)
if err := r.checkConnectionToGitServer(ctx, gitServer); err != nil {
instance.Status.SetFailed(err.Error())
instance.Status.Connected = false
if statusErr := r.updateGitServerStatus(ctx, instance, oldStatus); statusErr != nil {
return reconcile.Result{}, statusErr
}
log.Error(err, "GitServer connection is not established")
return reconcile.Result{RequeueAfter: defaultRequeueTime}, nil
}
instance.Status.Connected = true
if err := NewCreateEventListener(r.client).ServeRequest(ctx, instance); err != nil {
log.Error(err, "Failed to create EventListener")
instance.Status.SetFailed(err.Error())
if statusErr := r.updateGitServerStatus(ctx, instance, oldStatus); statusErr != nil {
return reconcile.Result{}, statusErr
}
return reconcile.Result{RequeueAfter: defaultRequeueTime}, nil
}
instance.Status.SetSuccess()
if err := r.updateGitServerStatus(ctx, instance, oldStatus); err != nil {
return reconcile.Result{}, err
}
log.Info("Reconciling GitServer has been finished")
return reconcile.Result{
RequeueAfter: successRequeueTime,
}, nil
}