mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Merge pull request #32988 from hashicorp/jbardin/destroy-plan-null-type
the destroy plan should use correct type
This commit is contained in:
commit
acbcbcb311
@ -440,7 +440,7 @@ func (n *NodeAbstractResourceInstance) planDestroy(ctx EvalContext, currentState
|
|||||||
Change: plans.Change{
|
Change: plans.Change{
|
||||||
Action: plans.Delete,
|
Action: plans.Delete,
|
||||||
Before: currentState.Value,
|
Before: currentState.Value,
|
||||||
After: cty.NullVal(cty.DynamicPseudoType),
|
After: nullVal,
|
||||||
},
|
},
|
||||||
Private: resp.PlannedPrivate,
|
Private: resp.PlannedPrivate,
|
||||||
ProviderAddr: n.ResolvedProvider,
|
ProviderAddr: n.ResolvedProvider,
|
||||||
|
@ -435,28 +435,16 @@ func (p *MockProvider) ApplyResourceChange(r providers.ApplyResourceChangeReques
|
|||||||
return *p.ApplyResourceChangeResponse
|
return *p.ApplyResourceChangeResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
schema, ok := p.getProviderSchema().ResourceTypes[r.TypeName]
|
|
||||||
if !ok {
|
|
||||||
resp.Diagnostics = resp.Diagnostics.Append(fmt.Errorf("no schema found for %q", r.TypeName))
|
|
||||||
return resp
|
|
||||||
}
|
|
||||||
|
|
||||||
// if the value is nil, we return that directly to correspond to a delete
|
// if the value is nil, we return that directly to correspond to a delete
|
||||||
if r.PlannedState.IsNull() {
|
if r.PlannedState.IsNull() {
|
||||||
resp.NewState = cty.NullVal(schema.Block.ImpliedType())
|
resp.NewState = r.PlannedState
|
||||||
return resp
|
|
||||||
}
|
|
||||||
|
|
||||||
val, err := schema.Block.CoerceValue(r.PlannedState)
|
|
||||||
if err != nil {
|
|
||||||
resp.Diagnostics = resp.Diagnostics.Append(err)
|
|
||||||
return resp
|
return resp
|
||||||
}
|
}
|
||||||
|
|
||||||
// the default behavior will be to create the minimal valid apply value by
|
// the default behavior will be to create the minimal valid apply value by
|
||||||
// setting unknowns (which correspond to computed attributes) to a zero
|
// setting unknowns (which correspond to computed attributes) to a zero
|
||||||
// value.
|
// value.
|
||||||
val, _ = cty.Transform(val, func(path cty.Path, v cty.Value) (cty.Value, error) {
|
val, _ := cty.Transform(r.PlannedState, func(path cty.Path, v cty.Value) (cty.Value, error) {
|
||||||
if !v.IsKnown() {
|
if !v.IsKnown() {
|
||||||
ty := v.Type()
|
ty := v.Type()
|
||||||
switch {
|
switch {
|
||||||
|
Loading…
Reference in New Issue
Block a user