Revert "insert empty objects into config from empty blocks"
This reverts commit 3677522a28
.
Later changes negate the need for this, and removing these again
prevents us from having to strip them back out when helper/schema
doesn't want them.
This commit is contained in:
parent
9b89f6ecc6
commit
c7269bec02
|
@ -80,6 +80,11 @@ func ConfigValueFromHCL2Block(v cty.Value, schema *configschema.Block) map[strin
|
||||||
|
|
||||||
case configschema.NestingList, configschema.NestingSet:
|
case configschema.NestingList, configschema.NestingSet:
|
||||||
l := bv.LengthInt()
|
l := bv.LengthInt()
|
||||||
|
if l == 0 {
|
||||||
|
// skip empty collections to better mimic how HCL1 would behave
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
elems := make([]interface{}, 0, l)
|
elems := make([]interface{}, 0, l)
|
||||||
for it := bv.ElementIterator(); it.Next(); {
|
for it := bv.ElementIterator(); it.Next(); {
|
||||||
_, ev := it.Element()
|
_, ev := it.Element()
|
||||||
|
@ -92,6 +97,11 @@ func ConfigValueFromHCL2Block(v cty.Value, schema *configschema.Block) map[strin
|
||||||
ret[name] = elems
|
ret[name] = elems
|
||||||
|
|
||||||
case configschema.NestingMap:
|
case configschema.NestingMap:
|
||||||
|
if bv.LengthInt() == 0 {
|
||||||
|
// skip empty collections to better mimic how HCL1 would behave
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
elems := make(map[string]interface{})
|
elems := make(map[string]interface{})
|
||||||
for it := bv.ElementIterator(); it.Next(); {
|
for it := bv.ElementIterator(); it.Next(); {
|
||||||
ek, ev := it.Element()
|
ek, ev := it.Element()
|
||||||
|
|
|
@ -151,7 +151,7 @@ func TestConfigValueFromHCL2Block(t *testing.T) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
cty.ObjectVal(map[string]cty.Value{
|
cty.ObjectVal(map[string]cty.Value{
|
||||||
"address": cty.ListValEmpty(cty.EmptyObject),
|
"address": cty.ListValEmpty(cty.EmptyObject), // should be omitted altogether in result
|
||||||
}),
|
}),
|
||||||
&configschema.Block{
|
&configschema.Block{
|
||||||
BlockTypes: map[string]*configschema.NestedBlock{
|
BlockTypes: map[string]*configschema.NestedBlock{
|
||||||
|
@ -161,9 +161,7 @@ func TestConfigValueFromHCL2Block(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
map[string]interface{}{
|
map[string]interface{}{},
|
||||||
"address": []interface{}{},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
cty.ObjectVal(map[string]cty.Value{
|
cty.ObjectVal(map[string]cty.Value{
|
||||||
|
@ -195,9 +193,7 @@ func TestConfigValueFromHCL2Block(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
map[string]interface{}{
|
map[string]interface{}{},
|
||||||
"address": []interface{}{},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
cty.ObjectVal(map[string]cty.Value{
|
cty.ObjectVal(map[string]cty.Value{
|
||||||
|
@ -229,9 +225,7 @@ func TestConfigValueFromHCL2Block(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
map[string]interface{}{
|
map[string]interface{}{},
|
||||||
"address": map[string]interface{}{},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
cty.NullVal(cty.EmptyObject),
|
cty.NullVal(cty.EmptyObject),
|
||||||
|
@ -240,8 +234,8 @@ func TestConfigValueFromHCL2Block(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(fmt.Sprintf("%d-%#v", i, test.Input), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%#v", test.Input), func(t *testing.T) {
|
||||||
got := ConfigValueFromHCL2Block(test.Input, test.Schema)
|
got := ConfigValueFromHCL2Block(test.Input, test.Schema)
|
||||||
if !reflect.DeepEqual(got, test.Want) {
|
if !reflect.DeepEqual(got, test.Want) {
|
||||||
t.Errorf("wrong result\ninput: %#v\ngot: %#v\nwant: %#v", test.Input, got, test.Want)
|
t.Errorf("wrong result\ninput: %#v\ngot: %#v\nwant: %#v", test.Input, got, test.Want)
|
||||||
|
|
Loading…
Reference in New Issue