Skip to content

Commit a0995f9

Browse files
committed
attempt at fixing an idempotence on roleparam resource
1 parent 7dcdf0d commit a0995f9

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

postgresql/resource_postgresql_alter_role.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,7 @@ func readAlterRole(db QueryAble, d *schema.ResourceData) error {
128128
alterRoleID := d.Id()
129129
alterParameterKey := d.Get("parameter_key")
130130

131-
values := []interface{}{
132-
&roleName,
133-
&roleParameters,
134-
}
135-
136-
err := db.QueryRow(getAlterRoleQuery, d.Get("role_name")).Scan(values...)
131+
err := db.QueryRow(getAlterRoleQuery, d.Get("role_name")).Scan(&roleName, &roleParameters)
137132
switch {
138133
case err == sql.ErrNoRows:
139134
log.Printf("[WARN] PostgreSQL alter role (%q) not found", alterRoleID)
@@ -148,16 +143,16 @@ func readAlterRole(db QueryAble, d *schema.ResourceData) error {
148143
d.Set("role_name", roleName)
149144
d.SetId(generateAlterRoleID(d))
150145

151-
for _, v := range roleParameters {
152-
parameter := string(v)
146+
parameters_string := strings.TrimPrefix(strings.TrimSuffix(string(roleParameters), '}'), '{')
147+
parameters = strings.Split(parameters_string, ",")
148+
for _, parameter := range parameters {
153149
parameterKey := strings.Split(parameter, "=")[0]
154150
parameterValue := strings.Split(parameter, "=")[1]
155151
if parameterKey == alterParameterKey {
156152
d.Set("parameter_key", parameterKey)
157153
d.Set("parameter_value", parameterValue)
158154
}
159155
}
160-
161156
return nil
162157
}
163158

0 commit comments

Comments
 (0)