Handle case where list is empty

Co-authored-by: Sylvia Moss <moss@hashicorp.com>
This commit is contained in:
Megan Marsh 2021-01-26 09:25:21 -08:00
parent e3b14d888b
commit 21df997061
1 changed files with 20 additions and 3 deletions

View File

@ -145,25 +145,42 @@ func ConvertPluginConfigValueToHCLValue(v interface{}) (cty.Value, error) {
for i, ev := range v {
vals[i] = cty.StringVal(ev)
}
buildValue = cty.ListVal(vals)
if len(vals) == 0 {
buildValue = cty.ListValEmpty(cty.String)
} else {
buildValue = cty.ListVal(vals)
}
case []uint8:
vals := make([]cty.Value, len(v))
for i, ev := range v {
vals[i] = cty.NumberUIntVal(uint64(ev))
}
buildValue = cty.ListVal(vals)
if len(vals) == 0 {
buildValue = cty.ListValEmpty(cty.Number)
} else {
buildValue = cty.ListVal(vals)
}
case []int64:
vals := make([]cty.Value, len(v))
for i, ev := range v {
vals[i] = cty.NumberIntVal(ev)
}
if len(vals) == 0 {
buildValue = cty.ListValEmpty(cty.Number)
} else {
buildValue = cty.ListVal(vals)
}
buildValue = cty.ListVal(vals)
case []uint64:
vals := make([]cty.Value, len(v))
for i, ev := range v {
vals[i] = cty.NumberUIntVal(ev)
}
buildValue = cty.ListVal(vals)
if len(vals) == 0 {
buildValue = cty.ListValEmpty(cty.Number)
} else {
buildValue = cty.ListVal(vals)
}
default:
return cty.Value{}, fmt.Errorf("unhandled buildvar type: %T", v)
}