func()

in pkg/controller/jenkins_job/jenkins_job_controller.go [141:176]


func (r *ReconcileJenkinsJob) handleJob(job *jenkinsApi.JenkinsJob) (reconcile.Result, error) {
	j, err := plutil.GetJenkinsInstanceOwner(r.client, job.Name, job.Namespace, job.Spec.OwnerName, job.GetOwnerReferences())
	if err != nil {
		return reconcile.Result{}, fmt.Errorf("failed to get jenkins owner for jenkins job %v: %w", job.Name, err)
	}

	jc, err := jenkinsClient.InitGoJenkinsClient(j, r.platform)
	if err != nil {
		return reconcile.Result{}, fmt.Errorf("failed to init jenkins client %v: %w", j, err)
	}

	jobExists, err := jenkinsJobExists(jc, job.Spec.Job.Name)
	if err != nil {
		return reconcile.Result{}, fmt.Errorf("failed to retrieve jenkins job %v; %w", job.Spec.Job.Name, err)
	}

	ch, err := r.getChain(jobExists)
	if err != nil {
		return reconcile.Result{}, fmt.Errorf("failed to select chain: %w", err)
	}

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

	if jobExists && job.IsAutoTriggerEnabled() {
		period := time.Duration(*job.Spec.Job.AutoTriggerPeriod) * time.Minute

		return reconcile.Result{
			Requeue:      true,
			RequeueAfter: period,
		}, nil
	}

	return reconcile.Result{}, nil
}