always validate all graphs
Complete the removal of the Validate option for graph building. There is no case where we want to allow an invalid graph, as the primary reason for validation is to ensure we have no cycles, and we can't walk a graph with cycles. The only code which specifically relied on there being no validation was a test to ensure the Validate flag prevented it.
This commit is contained in:
parent
821064edd3
commit
0bc69d64ec
|
@ -110,7 +110,6 @@ func (c *Context) applyGraph(plan *plans.Plan, config *configs.Config, validate
|
|||
Plugins: c.plugins,
|
||||
Targets: plan.TargetAddrs,
|
||||
ForceReplace: plan.ForceReplaceAddrs,
|
||||
Validate: validate,
|
||||
}).Build(addrs.RootModuleInstance)
|
||||
diags = diags.Append(moreDiags)
|
||||
if moreDiags.HasErrors() {
|
||||
|
|
|
@ -22,7 +22,6 @@ type GraphBuilder interface {
|
|||
// structure.
|
||||
type BasicGraphBuilder struct {
|
||||
Steps []GraphTransformer
|
||||
Validate bool
|
||||
// Optional name to add to the graph debug log
|
||||
Name string
|
||||
}
|
||||
|
@ -56,14 +55,11 @@ func (b *BasicGraphBuilder) Build(path addrs.ModuleInstance) (*Graph, tfdiags.Di
|
|||
}
|
||||
}
|
||||
|
||||
// Validate the graph structure
|
||||
if b.Validate {
|
||||
if err := g.Validate(); err != nil {
|
||||
log.Printf("[ERROR] Graph validation failed. Graph:\n\n%s", g.String())
|
||||
diags = diags.Append(err)
|
||||
return nil, diags
|
||||
}
|
||||
}
|
||||
|
||||
return g, diags
|
||||
}
|
||||
|
|
|
@ -46,16 +46,12 @@ type ApplyGraphBuilder struct {
|
|||
// The apply step refers to these as part of verifying that the planned
|
||||
// actions remain consistent between plan and apply.
|
||||
ForceReplace []addrs.AbsResourceInstance
|
||||
|
||||
// Validate will do structural validation of the graph.
|
||||
Validate bool
|
||||
}
|
||||
|
||||
// See GraphBuilder
|
||||
func (b *ApplyGraphBuilder) Build(path addrs.ModuleInstance) (*Graph, tfdiags.Diagnostics) {
|
||||
return (&BasicGraphBuilder{
|
||||
Steps: b.Steps(),
|
||||
Validate: b.Validate,
|
||||
Name: "ApplyGraphBuilder",
|
||||
}).Build(path)
|
||||
}
|
||||
|
|
|
@ -35,9 +35,6 @@ type DestroyPlanGraphBuilder struct {
|
|||
// Targets are resources to target
|
||||
Targets []addrs.Targetable
|
||||
|
||||
// Validate will do structural validation of the graph.
|
||||
Validate bool
|
||||
|
||||
// If set, skipRefresh will cause us stop skip refreshing any existing
|
||||
// resource instances as part of our planning. This will cause us to fail
|
||||
// to detect if an object has already been deleted outside of Terraform.
|
||||
|
@ -48,7 +45,6 @@ type DestroyPlanGraphBuilder struct {
|
|||
func (b *DestroyPlanGraphBuilder) Build(path addrs.ModuleInstance) (*Graph, tfdiags.Diagnostics) {
|
||||
return (&BasicGraphBuilder{
|
||||
Steps: b.Steps(),
|
||||
Validate: b.Validate,
|
||||
Name: "DestroyPlanGraphBuilder",
|
||||
}).Build(path)
|
||||
}
|
||||
|
|
|
@ -44,7 +44,6 @@ type EvalGraphBuilder struct {
|
|||
func (b *EvalGraphBuilder) Build(path addrs.ModuleInstance) (*Graph, tfdiags.Diagnostics) {
|
||||
return (&BasicGraphBuilder{
|
||||
Steps: b.Steps(),
|
||||
Validate: true,
|
||||
Name: "EvalGraphBuilder",
|
||||
}).Build(path)
|
||||
}
|
||||
|
|
|
@ -31,7 +31,6 @@ type ImportGraphBuilder struct {
|
|||
func (b *ImportGraphBuilder) Build(path addrs.ModuleInstance) (*Graph, tfdiags.Diagnostics) {
|
||||
return (&BasicGraphBuilder{
|
||||
Steps: b.Steps(),
|
||||
Validate: true,
|
||||
Name: "ImportGraphBuilder",
|
||||
}).Build(path)
|
||||
}
|
||||
|
|
|
@ -42,7 +42,6 @@ func TestBasicGraphBuilder_validate(t *testing.T) {
|
|||
&testBasicGraphBuilderTransform{1},
|
||||
&testBasicGraphBuilderTransform{2},
|
||||
},
|
||||
Validate: true,
|
||||
}
|
||||
|
||||
_, err := b.Build(addrs.RootModuleInstance)
|
||||
|
@ -51,21 +50,6 @@ func TestBasicGraphBuilder_validate(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestBasicGraphBuilder_validateOff(t *testing.T) {
|
||||
b := &BasicGraphBuilder{
|
||||
Steps: []GraphTransformer{
|
||||
&testBasicGraphBuilderTransform{1},
|
||||
&testBasicGraphBuilderTransform{2},
|
||||
},
|
||||
Validate: false,
|
||||
}
|
||||
|
||||
_, err := b.Build(addrs.RootModuleInstance)
|
||||
if err != nil {
|
||||
t.Fatalf("expected no error, got: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
type testBasicGraphBuilderTransform struct {
|
||||
V dag.Vertex
|
||||
}
|
||||
|
|
|
@ -391,7 +391,6 @@ func (n *NodePlannableResource) DynamicExpand(ctx EvalContext) (*Graph, error) {
|
|||
// Build the graph
|
||||
b := &BasicGraphBuilder{
|
||||
Steps: steps,
|
||||
Validate: true,
|
||||
Name: "NodePlannableResource",
|
||||
}
|
||||
graph, diags := b.Build(ctx.Path())
|
||||
|
|
Loading…
Reference in New Issue