Merge pull request #28043 from hashicorp/jbardin/missing-deposed-state

do not panic if there is no deposed state
This commit is contained in:
James Bardin 2021-03-11 08:52:43 -05:00 committed by GitHub
commit c5428959b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 0 deletions

View File

@ -159,6 +159,11 @@ func (n *NodeDestroyDeposedResourceInstanceObject) Execute(ctx EvalContext, op w
return diags.Append(err)
}
if state == nil {
diags = diags.Append(fmt.Errorf("missing deposed state for %s (%s)", n.Addr, n.DeposedKey))
return diags
}
change, destroyPlanDiags := n.planDestroy(ctx, state, n.DeposedKey)
diags = diags.Append(destroyPlanDiags)
if diags.HasErrors() {

View File

@ -176,3 +176,28 @@ aws_instance.foo: (1 deposed)
Deposed ID 1 = i-abc123
`)
}
func TestNodeDestroyDeposedResourceInstanceObject_ExecuteMissingState(t *testing.T) {
p := simpleMockProvider()
ctx := &MockEvalContext{
StateState: states.NewState().SyncWrapper(),
ProviderProvider: simpleMockProvider(),
ProviderSchemaSchema: p.ProviderSchema(),
ChangesChanges: plans.NewChanges().SyncWrapper(),
}
node := NodeDestroyDeposedResourceInstanceObject{
NodeAbstractResourceInstance: &NodeAbstractResourceInstance{
Addr: mustResourceInstanceAddr("test_object.foo"),
NodeAbstractResource: NodeAbstractResource{
ResolvedProvider: mustProviderConfig(`provider["registry.terraform.io/hashicorp/test"]`),
},
},
DeposedKey: states.NewDeposedKey(),
}
err := node.Execute(ctx, walkApply)
if err == nil {
t.Fatal("expected error")
}
}