Merge pull request #29522 from hashicorp/jbardin/json-blocktoattr
allow json output to marshal ConfigModeAttr blocks
This commit is contained in:
commit
1ad0421e15
|
@ -10,6 +10,7 @@ import (
|
|||
"github.com/hashicorp/terraform/internal/addrs"
|
||||
"github.com/hashicorp/terraform/internal/configs/configschema"
|
||||
"github.com/hashicorp/terraform/internal/lang"
|
||||
"github.com/hashicorp/terraform/internal/lang/blocktoattr"
|
||||
"github.com/zclconf/go-cty/cty"
|
||||
ctyjson "github.com/zclconf/go-cty/cty/json"
|
||||
)
|
||||
|
@ -96,6 +97,9 @@ func marshalExpressions(body hcl.Body, schema *configschema.Block) expressions {
|
|||
// (lowSchema is an hcl.BodySchema:
|
||||
// https://godoc.org/github.com/hashicorp/hcl/v2/hcl#BodySchema )
|
||||
|
||||
// fix any ConfigModeAttr blocks present from legacy providers
|
||||
body = blocktoattr.FixUpBlockAttrs(body, schema)
|
||||
|
||||
// Use the low-level schema with the body to decode one level We'll just
|
||||
// ignore any additional content that's not covered by the schema, which
|
||||
// will effectively ignore "dynamic" blocks, and may also ignore other
|
||||
|
|
|
@ -80,6 +80,29 @@ func TestMarshalExpressions(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
hcltest.MockBody(&hcl.BodyContent{
|
||||
Blocks: hcl.Blocks{
|
||||
{
|
||||
Type: "block_to_attr",
|
||||
Body: hcltest.MockBody(&hcl.BodyContent{
|
||||
|
||||
Attributes: hcl.Attributes{
|
||||
"foo": {
|
||||
Name: "foo",
|
||||
Expr: hcltest.MockExprTraversalSrc(`module.foo.bar`),
|
||||
},
|
||||
},
|
||||
}),
|
||||
},
|
||||
},
|
||||
}),
|
||||
expressions{
|
||||
"block_to_attr": expression{
|
||||
References: []string{"module.foo.bar", "module.foo"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
@ -89,6 +112,11 @@ func TestMarshalExpressions(t *testing.T) {
|
|||
Type: cty.String,
|
||||
Optional: true,
|
||||
},
|
||||
"block_to_attr": {
|
||||
Type: cty.List(cty.Object(map[string]cty.Type{
|
||||
"foo": cty.String,
|
||||
})),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue