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
}