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
}