func()

in pkg/controller/jenkinsscript/jenkinsscript_controller.go [205:234]


func (r *ReconcileJenkinsScript) getOrCreateInstanceOwner(ctx context.Context, jenkinsScript *jenkinsApi.JenkinsScript) (*jenkinsApi.Jenkins, error) {
	log := r.log.WithValues(logNamespaceKey, jenkinsScript.Namespace, logNameKey, jenkinsScript.Name)

	owner := r.getOwnerByCr(jenkinsScript)
	if owner != nil {
		return r.getInstanceByName(ctx, jenkinsScript.Namespace, owner.Name)
	}

	if jenkinsScript.Spec.OwnerName != nil {
		return r.getInstanceByOwnerFromSpec(ctx, jenkinsScript)
	}

	jenkinsInstance, err := r.getJenkinsInstance(ctx, jenkinsScript.Namespace)
	if err != nil {
		return nil, err
	}

	if jenkinsInstance == nil {
		return nil, nil
	}

	jenkinsScript = r.setOwnerReference(jenkinsInstance, jenkinsScript)
	log.Info(fmt.Sprintf("jenkinsScript.GetOwnerReferences() - %v", jenkinsScript.GetOwnerReferences()))

	if err = r.client.Update(ctx, jenkinsScript); err != nil {
		return nil, fmt.Errorf("failed to set owner reference for %v: %w", jenkinsScript.Name, err)
	}

	return jenkinsInstance, nil
}