Merge pull request #20904 from hashicorp/jbardin/filter-shim-nulls

filter nulls when shimming a config
This commit is contained in:
James Bardin 2019-04-02 15:10:17 -04:00 committed by GitHub
commit 34358254ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 1 deletions

View File

@ -167,7 +167,10 @@ func ConfigValueFromHCL2(v cty.Value) interface{} {
it := v.ElementIterator()
for it.Next() {
_, ev := it.Element()
l = append(l, ConfigValueFromHCL2(ev))
cv := ConfigValueFromHCL2(ev)
if cv != nil {
l = append(l, cv)
}
}
return l
}

View File

@ -232,6 +232,26 @@ func TestConfigValueFromHCL2Block(t *testing.T) {
&configschema.Block{},
nil,
},
// nulls should be filtered out of the config, since they couldn't exist
// in hcl.
{
cty.ObjectVal(map[string]cty.Value{
"list": cty.ListVal([]cty.Value{
cty.StringVal("ok"),
cty.NullVal(cty.String)}),
}),
&configschema.Block{
Attributes: map[string]*configschema.Attribute{
"list": {
Type: cty.List(cty.String),
Optional: true,
},
},
},
map[string]interface{}{
"list": []interface{}{"ok"},
},
},
}
for _, test := range tests {