pulumi/pkg/engine
Will Jones dc6f275f03
Fix dependency traversal for untargeted skipped creates (#17340)
When performing a `--target`ed operation, it is possible that the new
program introduces new resources that are not targeted. In such cases,
we can't emit `CreateStep`s (since that would not respect the
`--target`s), but we need to track the creations so that e.g. later
resources that will come to depend on these would-be resources can be
handled appropriately. The step generator maintains a list of so-called
"skipped creates" to this end.

Unfortunately, when later traversing the list of skipped creates to see
if any resources depend on them, "depend on" does not take into account
property dependencies and deleted-with relationships. This results in
snapshot integrity errors as we end up writing the broken dependencies
to the state. This commit rewrites the code to use the new
`GetAllDependencies()` method on `resource.State` to take account of the
other possible relationships, adding lifecycle tests for these new cases
and cleaning up the existing tests to be more specific about the errors
they expect.
2024-09-23 15:02:37 +00:00
..
lifecycletest Fix dependency traversal for untargeted skipped creates (#17340) 2024-09-23 15:02:37 +00:00
combinedManager.go Test SnapshotManager and Journal in engine tests (#15871) 2024-04-11 22:54:08 +00:00
debugging.go implement the engine bits for debugging support (#17072) 2024-08-30 10:31:28 +00:00
deployment.go Use events to report downloads as system messages (#17019) 2024-09-03 12:12:04 +00:00
deployment_test.go Clean up deployment options (#16357) 2024-06-11 13:37:57 +00:00
destroy.go Use events to report downloads as system messages (#17019) 2024-09-03 12:12:04 +00:00
detailedDiff.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
detailedDiff_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00: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 Centralise human-friendly error handling in the CLI (#17046) 2024-08-23 08:48:42 +00:00
events.go Use events to report downloads as system messages (#17019) 2024-09-03 12:12:04 +00:00
events_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
eventsink.go turn on the golangci-lint exhaustive linter (#15028) 2024-01-17 16:50:41 +00:00
import.go Clean up deployment options (#16357) 2024-06-11 13:37:57 +00:00
journal.go turn on the golangci-lint exhaustive linter (#15028) 2024-01-17 16:50:41 +00:00
plugin_host.go [conformance tests] Fix run root and use program info everywhere (#15191) 2024-01-25 23:28:58 +00:00
plugins.go Fix gatherPluginsFromSnapshot incorrectly spec'ing parameterized providers (#17218) 2024-09-10 10:22:53 +00:00
plugins_test.go Refactor: move plugin kind to apitype (#15946) 2024-04-25 17:30:30 +00:00
progress.go Use events to report downloads as system messages (#17019) 2024-09-03 12:12:04 +00:00
progress_test.go Use events to report downloads as system messages (#17019) 2024-09-03 12:12:04 +00:00
project.go Update error handling (#8406) 2021-11-12 18:37:17 -08:00
query.go Use events to report downloads as system messages (#17019) 2024-09-03 12:12:04 +00:00
refresh.go Use events to report downloads as system messages (#17019) 2024-09-03 12:12:04 +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 Fix gatherPluginsFromSnapshot incorrectly spec'ing parameterized providers (#17218) 2024-09-10 10:22:53 +00:00
update_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00