in controllers/keycloakrealmgroup/keycloakrealmgroup_controller.go [118:161]
func (r *ReconcileKeycloakRealmGroup) tryReconcile(ctx context.Context, keycloakRealmGroup *keycloakApi.KeycloakRealmGroup) error {
err := r.helper.SetRealmOwnerRef(ctx, keycloakRealmGroup)
if err != nil {
return fmt.Errorf("unable to set realm owner ref: %w", err)
}
kClient, err := r.helper.CreateKeycloakClientFromRealmRef(ctx, keycloakRealmGroup)
if err != nil {
return fmt.Errorf("unable to create keycloak client from realm ref: %w", err)
}
realm, err := r.helper.GetKeycloakRealmFromRef(ctx, keycloakRealmGroup, kClient)
if err != nil {
return fmt.Errorf("unable to get keycloak realm from ref: %w", err)
}
deleted, err := r.helper.TryToDelete(
ctx,
keycloakRealmGroup,
makeTerminator(
kClient,
gocloak.PString(realm.Realm),
keycloakRealmGroup.Spec.Name,
objectmeta.PreserveResourcesOnDeletion(keycloakRealmGroup),
),
keyCloakRealmGroupOperatorFinalizerName,
)
if err != nil {
return fmt.Errorf("failed to delete keycloak realm group: %w", err)
}
if deleted {
return nil
}
id, err := kClient.SyncRealmGroup(ctx, gocloak.PString(realm.Realm), &keycloakRealmGroup.Spec)
if err != nil {
return fmt.Errorf("unable to sync realm group: %w", err)
}
keycloakRealmGroup.Status.ID = id
return nil
}