Skip to content

Commit 5e47b1d

Browse files
committed
handle parse error
1 parent a7da055 commit 5e47b1d

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

provider/provider.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,16 @@ func populateIsNull(resourceData *schema.ResourceData) (result interface{}, err
100100
var resultItems []interface{}
101101
for _, item := range items {
102102
key := valueAsString(item.GetAttr("key"))
103+
order, err := valueAsInt(item.GetAttr("order"))
104+
if err != nil {
105+
return nil, xerrors.Errorf("unable to parse order for coder_metadata item %q: %w", key, err)
106+
}
107+
103108
resultItem := map[string]interface{}{
104109
"key": key,
105110
"value": valueAsString(item.GetAttr("value")),
106111
"sensitive": valueAsBool(item.GetAttr("sensitive")),
107-
"order": valueAsInt(item.GetAttr("order")),
112+
"order": order,
108113
}
109114
if item.GetAttr("value").IsNull() {
110115
resultItem["is_null"] = true
@@ -134,13 +139,13 @@ func valueAsBool(value cty.Value) interface{} {
134139
return value.True()
135140
}
136141

137-
func valueAsInt(value cty.Value) interface{} {
142+
func valueAsInt(value cty.Value) (interface{}, error) {
138143
if value.IsNull() {
139-
return nil
144+
return nil, nil
140145
}
141146
var valueAsInt int64
142-
gocty.FromCtyValue(value, &valueAsInt)
143-
return valueAsInt
147+
err := gocty.FromCtyValue(value, &valueAsInt)
148+
return valueAsInt, err
144149
}
145150

146151
// errorAsDiagnostic transforms a Go error to a diag.Diagnostics object representing a fatal error.

0 commit comments

Comments
 (0)