Skip to content

Commit bac7360

Browse files
authored
fix: avoid validation errors during plan for missing realm and openid client resources (#841)
1 parent b6060a0 commit bac7360

4 files changed

+10
-4
lines changed

keycloak/openid_client.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,7 @@ func (keycloakClient *KeycloakClient) getOpenidClientScopes(ctx context.Context,
241241
var scopes []*OpenidClientScope
242242

243243
err := keycloakClient.get(ctx, fmt.Sprintf("/realms/%s/clients/%s/%s-client-scopes", realmId, clientId, t), &scopes, nil)
244-
if err != nil && ErrorIs404(err) {
245-
return nil, fmt.Errorf("validation error: client with id %s does not exist", clientId)
246-
} else if err != nil {
244+
if err != nil {
247245
return nil, err
248246
}
249247

provider/resource_keycloak_generic_role_mapper.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func resourceKeycloakGenericRoleMapperRead(ctx context.Context, data *schema.Res
8686

8787
role, err := keycloakClient.GetRole(ctx, realmId, roleId)
8888
if err != nil {
89-
return diag.FromErr(err)
89+
return handleNotFoundError(ctx, err, data)
9090
}
9191

9292
mappedRole, err := keycloakClient.GetRoleScopeMapping(ctx, realmId, clientId, clientScopeId, role)

provider/resource_keycloak_openid_client_default_scopes.go

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"fmt"
6+
67
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
78
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
89
"github.com/mrparkers/terraform-provider-keycloak/keycloak"
@@ -70,6 +71,9 @@ func resourceKeycloakOpenidClientDefaultScopesReconcile(ctx context.Context, dat
7071

7172
keycloakOpenidClientDefaultScopes, err := keycloakClient.GetOpenidClientDefaultScopes(ctx, realmId, clientId)
7273
if err != nil {
74+
if keycloak.ErrorIs404(err) {
75+
return diag.FromErr(fmt.Errorf("validation error: client with id %s does not exist", clientId))
76+
}
7377
return diag.FromErr(err)
7478
}
7579

provider/resource_keycloak_openid_client_optional_scopes.go

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"fmt"
6+
67
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
78
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
89
"github.com/mrparkers/terraform-provider-keycloak/keycloak"
@@ -70,6 +71,9 @@ func resourceKeycloakOpenidClientOptionalScopesReconcile(ctx context.Context, da
7071

7172
keycloakOpenidClientOptionalScopes, err := keycloakClient.GetOpenidClientOptionalScopes(ctx, realmId, clientId)
7273
if err != nil {
74+
if keycloak.ErrorIs404(err) {
75+
return diag.FromErr(fmt.Errorf("validation error: client with id %s does not exist", clientId))
76+
}
7377
return diag.FromErr(err)
7478
}
7579

0 commit comments

Comments
 (0)