Merge pull request #28766 from hashicorp/jbardin/deposed-orphan
Fix crash with deposed instances in orphaned resources
This commit is contained in:
commit
b842360070
|
@ -399,7 +399,6 @@ func (n *NodeAbstractResourceInstance) planDestroy(ctx EvalContext, currentState
|
|||
Before: cty.NullVal(cty.DynamicPseudoType),
|
||||
After: cty.NullVal(cty.DynamicPseudoType),
|
||||
},
|
||||
Private: currentState.Private,
|
||||
ProviderAddr: n.ResolvedProvider,
|
||||
}
|
||||
return noop, nil
|
||||
|
|
|
@ -79,7 +79,12 @@ func (t *OrphanResourceInstanceTransformer) transform(g *Graph, ms *states.Modul
|
|||
}
|
||||
}
|
||||
|
||||
for key := range rs.Instances {
|
||||
for key, inst := range rs.Instances {
|
||||
// deposed instances will be taken care of separately
|
||||
if inst.Current == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
addr := rs.Addr.Instance(key)
|
||||
abstract := NewNodeAbstractResourceInstance(addr)
|
||||
var node dag.Vertex = abstract
|
||||
|
|
|
@ -50,6 +50,26 @@ func TestOrphanResourceInstanceTransformer(t *testing.T) {
|
|||
Module: addrs.RootModule,
|
||||
},
|
||||
)
|
||||
|
||||
// A deposed orphan should not be handled by this transformer
|
||||
s.SetResourceInstanceDeposed(
|
||||
addrs.Resource{
|
||||
Mode: addrs.ManagedResourceMode,
|
||||
Type: "test_instance",
|
||||
Name: "deposed",
|
||||
}.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance),
|
||||
states.NewDeposedKey(),
|
||||
&states.ResourceInstanceObjectSrc{
|
||||
AttrsFlat: map[string]string{
|
||||
"id": "foo",
|
||||
},
|
||||
Status: states.ObjectReady,
|
||||
},
|
||||
addrs.AbsProviderConfig{
|
||||
Provider: addrs.NewDefaultProvider("test"),
|
||||
Module: addrs.RootModule,
|
||||
},
|
||||
)
|
||||
})
|
||||
|
||||
g := Graph{Path: addrs.RootModuleInstance}
|
||||
|
|
Loading…
Reference in New Issue