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
}