Skip to content

Commit a3b6816

Browse files
committed
fix(workers_script): ignore unmanaged secret_text bindings
Fixes #5892
1 parent e9d000c commit a3b6816

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

internal/services/workers_script/custom.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ func UpdateSecretTextsFromState[T any](
187187
refreshedElems := refreshed.Elements()
188188
stateElems := state.Elements()
189189

190-
updatedElems := make([]attr.Value, len(refreshedElems))
190+
updatedElems := make([]attr.Value, 0, len(refreshedElems))
191191

192192
elemType := refreshed.ElementType(ctx)
193193

@@ -199,10 +199,10 @@ func UpdateSecretTextsFromState[T any](
199199

200200
attrTypes := objType.AttributeTypes()
201201

202-
for i, val := range refreshedElems {
202+
for _, val := range refreshedElems {
203203
refreshedObj, ok := val.(basetypes.ObjectValue)
204204
if !ok {
205-
updatedElems[i] = val
205+
updatedElems = append(updatedElems, val)
206206
continue
207207
}
208208

@@ -211,18 +211,19 @@ func UpdateSecretTextsFromState[T any](
211211
nameAttr := refreshedAttrs["name"]
212212

213213
if typeAttr.IsNull() || nameAttr.IsNull() {
214-
updatedElems[i] = val
214+
updatedElems = append(updatedElems, val)
215215
continue
216216
}
217217

218218
if typeAttr.(types.String).ValueString() != "secret_text" {
219-
updatedElems[i] = val
219+
updatedElems = append(updatedElems, val)
220220
continue
221221
}
222222

223223
name := nameAttr.(types.String).ValueString()
224224

225225
var originalText attr.Value
226+
var foundInState bool
226227
for _, stateVal := range stateElems {
227228
stateObj, ok := stateVal.(basetypes.ObjectValue)
228229
if !ok {
@@ -232,10 +233,15 @@ func UpdateSecretTextsFromState[T any](
232233
if stateAttrs["type"].(types.String).ValueString() == "secret_text" &&
233234
stateAttrs["name"].(types.String).ValueString() == name {
234235
originalText = stateAttrs["text"]
236+
foundInState = true
235237
break
236238
}
237239
}
238240

241+
if !foundInState {
242+
continue
243+
}
244+
239245
if originalText != nil && !originalText.IsNull() && !originalText.IsUnknown() {
240246
refreshedAttrs["text"] = originalText
241247

@@ -244,7 +250,7 @@ func UpdateSecretTextsFromState[T any](
244250
refreshedObj = newObj
245251
}
246252

247-
updatedElems[i] = refreshedObj
253+
updatedElems = append(updatedElems, refreshedObj)
248254
}
249255

250256
value, d := types.ListValue(refreshed.ElementType(ctx), updatedElems)

internal/services/workers_script/resource_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func TestAccCloudflareWorkerScript_ModuleUpload(t *testing.T) {
150150
ImportStateIdPrefix: fmt.Sprintf("%s/", accountID),
151151
ImportState: true,
152152
ImportStateVerify: true,
153-
ImportStateVerifyIgnore: []string{"bindings.2.text", "main_module", "startup_time_ms"},
153+
ImportStateVerifyIgnore: []string{"bindings.2", "bindings.#", "main_module", "startup_time_ms"},
154154
},
155155
},
156156
})

0 commit comments

Comments
 (0)