evaluate vars and outputs during import
Outputs were not being evaluated during import, because it was not added to the walk filter. Remove any unnecessary walk filters from all the Execute nodes.
This commit is contained in:
parent
bad0adb996
commit
a32028aeed
|
@ -38,7 +38,7 @@ func TestContextEval(t *testing.T) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
`module.child.result`,
|
`module.child.result`,
|
||||||
cty.UnknownVal(cty.Number),
|
cty.NumberIntVal(6),
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,13 +153,13 @@ func (n *nodeModuleVariable) Execute(ctx EvalContext, op walkOperation) error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
switch op {
|
switch op {
|
||||||
case walkPlan, walkApply, walkDestroy:
|
case walkValidate:
|
||||||
vals, err = n.EvalModuleCallArgument(ctx, false)
|
vals, err = n.EvalModuleCallArgument(ctx, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
case walkValidate:
|
default:
|
||||||
vals, err = n.EvalModuleCallArgument(ctx, true)
|
vals, err = n.EvalModuleCallArgument(ctx, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,9 +199,6 @@ func (n *NodeApplyableOutput) References() []*addrs.Reference {
|
||||||
|
|
||||||
// GraphNodeExecutable
|
// GraphNodeExecutable
|
||||||
func (n *NodeApplyableOutput) Execute(ctx EvalContext, op walkOperation) error {
|
func (n *NodeApplyableOutput) Execute(ctx EvalContext, op walkOperation) error {
|
||||||
switch op {
|
|
||||||
// Everything except walkImport
|
|
||||||
case walkEval, walkPlan, walkApply, walkValidate, walkDestroy, walkPlanDestroy:
|
|
||||||
// This has to run before we have a state lock, since evaluation also
|
// This has to run before we have a state lock, since evaluation also
|
||||||
// reads the state
|
// reads the state
|
||||||
val, diags := ctx.EvaluateExpr(n.Config.Expr, cty.DynamicPseudoType, nil)
|
val, diags := ctx.EvaluateExpr(n.Config.Expr, cty.DynamicPseudoType, nil)
|
||||||
|
@ -251,9 +248,6 @@ func (n *NodeApplyableOutput) Execute(ctx EvalContext, op walkOperation) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// dag.GraphNodeDotter impl.
|
// dag.GraphNodeDotter impl.
|
||||||
|
|
|
@ -136,8 +136,6 @@ func (n *NodeDestroyResourceInstance) Execute(ctx EvalContext, op walkOperation)
|
||||||
var state *states.ResourceInstanceObject
|
var state *states.ResourceInstanceObject
|
||||||
var provisionerErr error
|
var provisionerErr error
|
||||||
|
|
||||||
switch op {
|
|
||||||
case walkApply, walkDestroy:
|
|
||||||
provider, providerSchema, err := GetProvider(ctx, n.ResolvedProvider)
|
provider, providerSchema, err := GetProvider(ctx, n.ResolvedProvider)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -263,7 +261,6 @@ func (n *NodeDestroyResourceInstance) Execute(ctx EvalContext, op walkOperation)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,9 +76,6 @@ func (n *NodePlanDeposedResourceInstanceObject) Execute(ctx EvalContext, op walk
|
||||||
var change *plans.ResourceInstanceChange
|
var change *plans.ResourceInstanceChange
|
||||||
var state *states.ResourceInstanceObject
|
var state *states.ResourceInstanceObject
|
||||||
|
|
||||||
switch op {
|
|
||||||
case walkPlan, walkPlanDestroy:
|
|
||||||
|
|
||||||
readStateDeposed := &EvalReadStateDeposed{
|
readStateDeposed := &EvalReadStateDeposed{
|
||||||
Addr: addr.Resource,
|
Addr: addr.Resource,
|
||||||
Output: &state,
|
Output: &state,
|
||||||
|
@ -113,7 +110,7 @@ func (n *NodePlanDeposedResourceInstanceObject) Execute(ctx EvalContext, op walk
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -301,7 +301,7 @@ func (m ReferenceMap) References(v dag.Vertex) []dag.Vertex {
|
||||||
case addrs.ModuleCallInstance:
|
case addrs.ModuleCallInstance:
|
||||||
subject = ri.Call
|
subject = ri.Call
|
||||||
default:
|
default:
|
||||||
log.Printf("[WARN] ReferenceTransformer: reference not found: %q", subject)
|
log.Printf("[INFO] ReferenceTransformer: reference not found: %q", subject)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
key = m.referenceMapKey(v, subject)
|
key = m.referenceMapKey(v, subject)
|
||||||
|
|
Loading…
Reference in New Issue