in controllers/script/nexusscript_controller.go [35:109]
func (r *NexusScriptReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
log := ctrl.LoggerFrom(ctx)
log.Info("Reconciling NexusScript")
script := &nexusApi.NexusScript{}
if err := r.k8sclient.Get(ctx, req.NamespacedName, script); err != nil {
if k8sErrors.IsNotFound(err) {
return ctrl.Result{}, nil
}
return ctrl.Result{}, fmt.Errorf("failed to get NexusScript: %w", err)
}
nexusApiClient, err := r.apiClientProvider.GetNexusApiClientFromNexusRef(ctx, script.Namespace, script)
if err != nil {
log.Error(err, "An error has occurred while getting nexus api k8sclient")
return ctrl.Result{
RequeueAfter: controllers.ErrorRequeueTime,
}, nil
}
if script.GetDeletionTimestamp() != nil {
if controllerutil.ContainsFinalizer(script, controllers.NexusOperatorFinalizer) {
if err = chain.NewRemoveScript(nexusApiClient.Script).ServeRequest(ctx, script); err != nil {
log.Error(err, "An error has occurred while deleting NexusScript")
return ctrl.Result{
RequeueAfter: controllers.ErrorRequeueTime,
}, nil
}
controllerutil.RemoveFinalizer(script, controllers.NexusOperatorFinalizer)
if err = r.k8sclient.Update(ctx, script); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to update NexusScript: %w", err)
}
}
return ctrl.Result{}, nil
}
if controllerutil.AddFinalizer(script, controllers.NexusOperatorFinalizer) {
err = r.k8sclient.Update(ctx, script)
if err != nil {
return ctrl.Result{}, fmt.Errorf("failed to update NexusScript: %w", err)
}
}
oldStatus := script.Status
if err = chain.CreateChain(nexusApiClient.Script).ServeRequest(ctx, script); err != nil {
log.Error(err, "An error has occurred while handling NexusScript")
script.Status.Value = common.StatusError
script.Status.Error = err.Error()
if err = r.updateNexusScriptStatus(ctx, script, oldStatus); err != nil {
return ctrl.Result{}, err
}
return ctrl.Result{
RequeueAfter: controllers.ErrorRequeueTime,
}, nil
}
script.Status.Value = common.StatusCreated
script.Status.Error = ""
if err = r.updateNexusScriptStatus(ctx, script, oldStatus); err != nil {
return ctrl.Result{}, err
}
return ctrl.Result{}, nil
}