pulumi/pkg/engine
Thomas Gummerer 9063974f70 implement programmatic default providers in the engine and Go SDK
Implement default providers in the engine and the Go SDK first (Go SDK
for no other reason other than I'm most familiar with that language).

The SDK sends a RegisterDefaultProvider request to the engine, which
adds the provider to its default provider map, and explicitly
disallows creating an implicit default provider going forward.

The locking around this happens on the SDK side, since we need to
disallow RegisterResource requests happening at the same time as
DefaultProvider requests.  Here we can simply take a read lock before
creating the RegisterResource goroutine, and a write lock for the
duration of the RegisterDefaultProvider call.

This way we can have RegisterResource calls happen in parallel, but
the RegisterDefaultProvider call will not go ahead before the read
lock is released.  Similarly, the next RegisterResource call will be
locked until the RegisterDefaultProvider call has finished.
2024-05-02 19:04:59 +02:00
..
lifecycletest implement programmatic default providers in the engine and Go SDK 2024-05-02 19:04:59 +02:00
combinedManager.go Test SnapshotManager and Journal in engine tests (#15871) 2024-04-11 22:54:08 +00:00
deployment.go remove chdir (#15607) 2024-04-25 12:16:04 +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 Move assets and archives to their own package (#15157) 2024-01-25 20:39:31 +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 turn on the golangci-lint exhaustive linter (#15028) 2024-01-17 16:50:41 +00:00
import.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +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 Refactor: move plugin kind to apitype (#15946) 2024-04-25 17:30:30 +00:00
plugins_test.go Refactor: move plugin kind to apitype (#15946) 2024-04-25 17:30:30 +00:00
project.go Update error handling (#8406) 2021-11-12 18:37:17 -08:00
query.go [conformance tests] Fix run root and use program info everywhere (#15191) 2024-01-25 23:28:58 +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 destroy: implement --continue-on-error (#15727) 2024-03-22 09:22:40 +00:00
update_test.go turn on the golangci-lint exhaustive linter (#15028) 2024-01-17 16:50:41 +00:00