func()

in pkg/controller/shared_library/controller.go [159:202]


func (r *Reconcile) prepareSharedLibraries(ctx context.Context,
	instance *jenkinsApi.JenkinsSharedLibrary,
	rootLibraries []jenkinsApi.JenkinsSharedLibraries,
) ([]jenkinsApi.JenkinsSharedLibraries, error) {
	var libList jenkinsApi.JenkinsSharedLibraryList

	if err := r.client.List(ctx, &libList, &client.ListOptions{Namespace: instance.Namespace}); err != nil {
		return nil, fmt.Errorf("failed to list jenkins shared libraries: %w", err)
	}

	for i := 0; i < len(libList.Items); i++ {
		libOwnerName, instanceOwnerName := "", ""

		if libList.Items[i].Spec.OwnerName != nil {
			libOwnerName = *libList.Items[i].Spec.OwnerName
		}

		if instance.Spec.OwnerName != nil {
			instanceOwnerName = *instance.Spec.OwnerName
		}

		if libOwnerName == instanceOwnerName && libList.Items[i].Name != instance.Name {
			credentialID := libList.Items[i].Spec.CredentialID

			rootLibraries = append(rootLibraries, jenkinsApi.JenkinsSharedLibraries{
				Name:         libList.Items[i].Spec.Name,
				CredentialID: &credentialID,
				Tag:          libList.Items[i].Spec.Tag,
				URL:          libList.Items[i].Spec.URL,
			})
		}
	}

	if instance.ObjectMeta.DeletionTimestamp.IsZero() {
		rootLibraries = append(rootLibraries, jenkinsApi.JenkinsSharedLibraries{
			Name:         instance.Spec.Name,
			CredentialID: &instance.Spec.CredentialID,
			Tag:          instance.Spec.Tag,
			URL:          instance.Spec.URL,
		})
	}

	return rootLibraries, nil
}