func()

in controllers/gerritproject/controller.go [122:161]


func (r *Reconcile) tryToReconcile(ctx context.Context, instance *gerritApi.GerritProject) error {
	cl, err := helper.GetGerritClient(ctx, r.client, instance, instance.Spec.OwnerName, r.service)
	if err != nil {
		return errors.Wrap(err, "unable to init gerrit client")
	}

	_, err = cl.GetProject(instance.Spec.Name)
	if err != nil && !gerritClient.IsErrDoesNotExist(err) {
		return errors.Wrap(err, "unable to get project")
	}

	prj := gerritClient.Project{
		Name:              instance.Spec.Name,
		Description:       instance.Spec.Description,
		Parent:            instance.Spec.Parent,
		Branches:          instance.Spec.Branches,
		CreateEmptyCommit: instance.Spec.CreateEmptyCommit,
		Owners:            instance.Spec.Owners,
		PermissionsOnly:   instance.Spec.PermissionsOnly,
		RejectEmptyCommit: instance.Spec.RejectEmptyCommit,
		SubmitType:        instance.Spec.SubmitType,
	}

	if gerritClient.IsErrDoesNotExist(err) {
		if err := cl.CreateProject(&prj); err != nil {
			return errors.Wrap(err, "unable to create gerrit project")
		}
	} else {
		if err := cl.UpdateProject(&prj); err != nil {
			return errors.Wrap(err, "unable to update project")
		}
	}

	if err := helper.TryToDelete(ctx, r.client, instance, finalizerName,
		r.makeDeletionFunc(cl, instance.Spec.Name)); err != nil {
		return errors.Wrap(err, "error during TryToDelete")
	}

	return nil
}