func()

in pkg/controller/jenkins_folder/jenkins_folder_controller.go [161:195]


func (r *ReconcileJenkinsFolder) tryToDeleteJenkinsFolder(
	ctx context.Context,
	jc jenkinsClient.JenkinsClient,
	jenkinsFolder *jenkinsApi.JenkinsFolder,
) (*reconcile.Result, error) {
	if jenkinsFolder.GetDeletionTimestamp().IsZero() {
		if !finalizer.ContainsString(jenkinsFolder.ObjectMeta.Finalizers, jenkinsFolderJenkinsFinalizerName) {
			jenkinsFolder.ObjectMeta.Finalizers = append(jenkinsFolder.ObjectMeta.Finalizers, jenkinsFolderJenkinsFinalizerName)

			if err := r.client.Update(ctx, jenkinsFolder); err != nil {
				return &reconcile.Result{}, fmt.Errorf("failed to update JenkinsFolder: %w", err)
			}
		}

		return nil, nil
	}

	jenkinsFolderName := r.getJenkinsFolderName(jenkinsFolder)

	if _, err := jc.GoJenkins.DeleteJob(jenkinsFolderName); err != nil {
		if helper.JenkinsIsNotFoundErr(err) {
			return &reconcile.Result{}, fmt.Errorf("failed to delete JenkinsFolder: %w", err)
		}

		r.log.V(2).Info("404 code error when Jenkins job was deleted earlier during reconciliation", "jenkins folder", jenkinsFolder.Name)
	}

	jenkinsFolder.ObjectMeta.Finalizers = finalizer.RemoveString(jenkinsFolder.ObjectMeta.Finalizers, jenkinsFolderJenkinsFinalizerName)

	if err := r.client.Update(ctx, jenkinsFolder); err != nil {
		return &reconcile.Result{}, fmt.Errorf("failed to update JenkinsFolder: %w", err)
	}

	return &reconcile.Result{}, nil
}