mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
call PersistState immediately when cancelling
When the backend operation is cancelled, immediately call PersistState. The is a high likelihood that the user is going to terminate the process early if the provider doesn't return in a timely manner, so persist as much state as possible.
This commit is contained in:
parent
b73d037761
commit
9e4c0ff2ad
@ -126,6 +126,17 @@ func (b *Local) opApply(
|
|||||||
b.CLI.Output("stopping apply operation...")
|
b.CLI.Output("stopping apply operation...")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// try to force a PersistState just in case the process is terminated
|
||||||
|
// before we can complete.
|
||||||
|
if err := opState.PersistState(); err != nil {
|
||||||
|
// We can't error out from here, but warn the user if there was an error.
|
||||||
|
// If this isn't transient, we will catch it again below, and
|
||||||
|
// attempt to save the state another way.
|
||||||
|
if b.CLI != nil {
|
||||||
|
b.CLI.Error(fmt.Sprintf(earlyStateWriteErrorFmt, err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Stop execution
|
// Stop execution
|
||||||
go tfCtx.Stop()
|
go tfCtx.Stop()
|
||||||
|
|
||||||
@ -270,3 +281,10 @@ importing each resource using its id from the target system.
|
|||||||
|
|
||||||
This is a serious bug in Terraform and should be reported.
|
This is a serious bug in Terraform and should be reported.
|
||||||
`
|
`
|
||||||
|
|
||||||
|
const earlyStateWriteErrorFmt = `Error saving current state: %s
|
||||||
|
|
||||||
|
Terraform encountered an error attempting to save the state before canceling
|
||||||
|
the current operation. Once the operation is complete another attempt will be
|
||||||
|
made to save the final state.
|
||||||
|
`
|
||||||
|
Loading…
Reference in New Issue
Block a user