last Evals without diagnostics

This commit is contained in:
James Bardin 2020-10-28 12:32:49 -04:00
parent 786a7291bf
commit 77cabe187d
3 changed files with 13 additions and 16 deletions

View File

@ -20,7 +20,7 @@ type EvalValidateSelfRef struct {
ProviderSchema **ProviderSchema
}
func (n *EvalValidateSelfRef) Eval(ctx EvalContext) (interface{}, error) {
func (n *EvalValidateSelfRef) Eval(ctx EvalContext) tfdiags.Diagnostics {
var diags tfdiags.Diagnostics
addr := n.Addr
@ -33,7 +33,8 @@ func (n *EvalValidateSelfRef) Eval(ctx EvalContext) (interface{}, error) {
}
if n.ProviderSchema == nil || *n.ProviderSchema == nil {
return nil, fmt.Errorf("provider schema unavailable while validating %s for self-references; this is a bug in Terraform and should be reported", addr)
diags = diags.Append(fmt.Errorf("provider schema unavailable while validating %s for self-references; this is a bug in Terraform and should be reported", addr))
return diags
}
providerSchema := *n.ProviderSchema
@ -46,7 +47,8 @@ func (n *EvalValidateSelfRef) Eval(ctx EvalContext) (interface{}, error) {
}
if schema == nil {
return nil, fmt.Errorf("no schema available for %s to validate for self-references; this is a bug in Terraform and should be reported", addr)
diags = diags.Append(fmt.Errorf("no schema available for %s to validate for self-references; this is a bug in Terraform and should be reported", addr))
return diags
}
refs, _ := lang.ReferencesInBlock(n.Config, schema)
@ -63,5 +65,5 @@ func (n *EvalValidateSelfRef) Eval(ctx EvalContext) (interface{}, error) {
}
}
return nil, diags.NonFatalErr()
return diags
}

View File

@ -5,7 +5,6 @@ import (
"testing"
"github.com/hashicorp/terraform/configs/configschema"
"github.com/hashicorp/terraform/tfdiags"
"github.com/hashicorp/hcl/v2"
"github.com/hashicorp/hcl/v2/hcltest"
@ -98,11 +97,7 @@ func TestEvalValidateSelfRef(t *testing.T) {
Config: body,
ProviderSchema: &ps,
}
result, err := n.Eval(nil)
if result != nil {
t.Fatal("result should always be nil")
}
diags := tfdiags.Diagnostics(nil).Append(err)
diags := n.Eval(nil)
if diags.HasErrors() != test.Err {
if test.Err {
t.Errorf("unexpected success; want error")

View File

@ -68,9 +68,9 @@ func (n *NodePlannableResourceInstance) dataResourceExecute(ctx EvalContext) err
Config: config.Config,
ProviderSchema: &providerSchema,
}
_, err = validateSelfRef.Eval(ctx)
if err != nil {
return err
diags = validateSelfRef.Eval(ctx)
if diags.HasErrors() {
return diags.ErrWithWarnings()
}
readDataPlan := &evalReadDataPlan{
@ -144,9 +144,9 @@ func (n *NodePlannableResourceInstance) managedResourceExecute(ctx EvalContext)
Config: config.Config,
ProviderSchema: &providerSchema,
}
_, err = validateSelfRef.Eval(ctx)
if err != nil {
return err
diags = validateSelfRef.Eval(ctx)
if diags.HasErrors() {
return diags.ErrWithWarnings()
}
instanceRefreshState, err = n.ReadResourceInstanceState(ctx, addr)