A second approach to fixing timeouts in state. #577
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Timeouts are persisted in state in a funny way, and the SDK manages how
this happens. PlanResourceChange, ImportResourceChange, and ReadResource
all apply this logic to persisting the timeouts and state, but
ImportResource doesn't. This is likely because the logic assumes there's
a state that the timeouts may be present in, but ImportResource
obviously doesn't have a state.
This PR just applies the same logic assuming the resource state is null
(which, technically, is kinda true?) and experimentally it has the same
effect that running
apply
has.Why are we storing timeouts in state at all? My guess is it has
something to do with Terraform's type management with cty between state
and config; I bet we're not allowed to have something in config that's
not in state, or some such.