in controllers/nexus/nexus_controller.go [49:99]
func (r *NexusReconciler) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error) {
log := ctrl.LoggerFrom(ctx)
log.Info("Reconciling Nexus")
nexus := &nexusApi.Nexus{}
if err := r.client.Get(ctx, req.NamespacedName, nexus); err != nil {
if k8sErrors.IsNotFound(err) {
return reconcile.Result{}, nil
}
return reconcile.Result{}, fmt.Errorf("failed to get Nexus instance from k8s: %w", err)
}
oldStatus := nexus.Status
nexusApiClient, err := r.apiClientProvider.GetNexusApiClientFromNexus(ctx, nexus)
if err != nil {
nexus.Status.Error = err.Error()
nexus.Status.Connected = false
if statusErr := r.updateNexusStatus(ctx, nexus, oldStatus); statusErr != nil {
return reconcile.Result{}, statusErr
}
return reconcile.Result{RequeueAfter: defaultRequeueTime}, fmt.Errorf("failed to get nexus api client: %w", err)
}
if err = chain.NewCheckConnection(nexusApiClient.Security.User).ServeRequest(ctx, nexus); err != nil {
nexus.Status.Error = err.Error()
nexus.Status.Connected = false
if statusErr := r.updateNexusStatus(ctx, nexus, oldStatus); statusErr != nil {
return reconcile.Result{}, statusErr
}
return reconcile.Result{RequeueAfter: defaultRequeueTime}, fmt.Errorf("failed to serve request: %w", err)
}
nexus.Status.Connected = true
nexus.Status.Error = ""
if err = r.updateNexusStatus(ctx, nexus, oldStatus); err != nil {
return reconcile.Result{}, err
}
log.Info("Reconciling Nexus is finished")
return reconcile.Result{
RequeueAfter: successRequeueTime,
}, nil
}