pulumi/pkg/engine
Fraser Waters 035a502d86
Verify partial journals in engine tests (#15018)
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

This updates test_plan.go to verify that every partial snapshot is also
a valid snapshot. This tests that the journal always writes out _valid_
snapshots even for scenarios where an update only partially ran.

While doing this it flagged up that the validation code was wrong for
delete-before-create resources.

When we do a delete-before-create replacement we need to leave the
"being replaced" resource in the snapshot. This is because while that
resource is being replaced it might have dependents that are not being
replaced, and so there is a period of time where _it_ is deleted but
dependents are still referring to it. If we removed it from the snapshot
at this point those dependent resources would not validate.

But in the case of two resources both being delete-before-create
replaced you can have a scenario where both get deleted (but are still
in the snapshot file) and the first then gets created thus removing it's
old entry from the snapshot file and adding it's new state. If the first
resource was a provider that will change it's ID, thus making the
provider reference in the second resource now look invalid.
2024-01-05 23:16:40 +00:00
..
lifecycletest Verify partial journals in engine tests (#15018) 2024-01-05 23:16:40 +00:00
deployment.go Enable perfsprint linter (#14813) 2023-12-12 12:19:42 +00:00
deployment_test.go Add tokens.StackName (#14487) 2023-11-15 07:44:54 +00:00
destroy.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
detailedDiff.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
detailedDiff_test.go [display] Refactor diff translation and display. (#9363) 2022-04-07 12:05:33 -07:00
doc.go Document Go packages (#6009) 2021-01-11 11:07:59 -07:00
engine.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
errors.go Clean up uses of .Error() (#14965) 2023-12-20 15:54:06 +00:00
events.go Send all events to the engine event stream (#14607) 2023-11-20 21:55:59 +00:00
events_test.go Do not panic when sending events to closed emitter (#10489) 2022-08-25 12:43:10 -04:00
eventsink.go chore: WriteString(Sprintf(..)) => Fprintf(..) 2023-03-01 13:22:33 -08:00
import.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
journal.go Validate journal close in test_plan (#15027) 2024-01-03 17:32:13 +00:00
plugin_host.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
plugins.go Move language check from installPlugin to installPlugins (#14103) 2023-10-07 18:31:44 +00:00
plugins_test.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
project.go Update error handling (#8406) 2021-11-12 18:37:17 -08:00
query.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
refresh.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
snapshot.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
update.go Send all events to the engine event stream (#14607) 2023-11-20 21:55:59 +00:00
update_test.go Policy remediations feature (#14080) 2023-10-09 18:31:17 +00:00