func()

in pkg/controller/jenkins_folder/jenkins_folder_controller.go [86:124]


func (r *ReconcileJenkinsFolder) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) {
	log := r.log.WithValues("Request.Namespace", request.Namespace, "Request.Name", request.Name)
	log.V(2).Info("Reconciling JenkinsFolder has been started")

	jenkinsFolder := &jenkinsApi.JenkinsFolder{}

	if err := r.client.Get(ctx, request.NamespacedName, jenkinsFolder); err != nil {
		if k8serrors.IsNotFound(err) {
			log.Info("instance not found")

			return reconcile.Result{}, nil
		}

		return reconcile.Result{}, fmt.Errorf("failed to Get JenkinsFolder: %w", err)
	}

	jc, err := r.initGoJenkinsClient(jenkinsFolder)
	if err != nil {
		return reconcile.Result{}, fmt.Errorf("failed to create gojenkins client: %w", err)
	}

	result, err := r.tryToDeleteJenkinsFolder(ctx, *jc, jenkinsFolder)
	if err != nil || result != nil {
		return *result, err
	}

	h, err := r.createChain(jenkinsFolder.Spec.Job != nil)
	if err != nil {
		return reconcile.Result{}, err
	}

	if err = h.ServeRequest(jenkinsFolder); err != nil {
		return reconcile.Result{}, fmt.Errorf("failed to ServeRequest: %w", err)
	}

	log.V(2).Info("Reconciling JenkinsFolder has been finished")

	return reconcile.Result{}, nil
}